def METHOD_NAME(self, user):
    if random.random() < 0.3:
        return
    if random.random() < 0.2:
        currency = "EUR"
    else:
        currency = "GBP"
    b = Basket(user, currency)
    pt = PriceTier.query.filter_by(name="full-std").one()
    b[pt] = int(round(random.uniform(1, 4)))
    if random.random() < 0.5:
        pt = PriceTier.query.filter_by(name="parking").one()
        b[pt] = 1
    b.create_purchases()
    b.ensure_purchase_capacity()
    payment_type = {"bank": BankPayment, "stripe": StripePayment}.get(
        random_state({"bank": 0.2, "stripe": 0.8})
    )
    payment = b.create_payment(payment_type)
    if random.random() < 0.8:
        payment.paid()
    else:
        payment.cancel()