1
Billable. use Billable on User. Adds stripe_id, trial_ends_at and the payment-method columns by migration.
2
Checkout. newSubscription('default', 'price_monthly')->checkout() sends the customer to Stripe's hosted page.
3
Stripe, holds the customer, the subscription and the card. Cashier wraps its objects; asStripeSubscription() unwraps.
4
Webhook. /stripe/webhook, registered by Cashier, verified with STRIPE_WEBHOOK_SECRET; you exempt stripe/* from CSRF.
5
subscriptions table. One row per subscription, stripe_status kept current by the webhook, so subscribed() never calls Stripe.
6
Payment page. The cashier.payment route: where you send the customer after an IncompletePayment, to confirm for SCA.