Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

Laravel Cashier can take much of the repetitive subscription-billing work out of a Laravel membership application, but it does not define your membership rules or provide payment processing itself. Choose the Cashier integration that matches your billing provider—Stripe or Paddle—and make sure its package generation matches your provider and application versions.

What Laravel Cashier does for a membership app

Laravel describes its Stripe package this way: “Laravel Cashier Stripe provides an expressive, fluent interface to Stripe’s subscription billing services.” In practice, Cashier supplies Laravel-oriented methods for common billing operations, such as creating subscriptions, checking their status, changing prices, handling quantities, and canceling or resuming a subscription. The exact capabilities vary between the Stripe and Paddle integrations.

Cashier is an integration layer, not a payment provider. Stripe or Paddle processes billing through its own services; your application still needs to decide which plans to offer, who can access which features, and what to do when a subscription changes or a payment fails. A paid membership therefore involves both billing state and application-level authorization.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Choose the Cashier package that matches your provider

Choice Package and provider generation Documented scope and considerations
Stripe laravel/cashier, for Stripe subscription billing. The Laravel guide covers subscription creation and status, trials, price changes, quantities, cancellation and resumption, invoices, failed payments, checkout, and testing. It recommends configuring webhooks and documents a hosted Stripe Billing Portal for invoices, payment methods, and plan changes. Cashier 16 uses Stripe API version 2025-06-30.basil; Laravel notes that this API version can change in minor releases. Laravel Cashier (Stripe) documentation.
Paddle Billing laravel/cashier-paddle 2.x, for Paddle Billing. The Laravel guide covers checkout, price previews, subscription changes, quantities, multiple products or subscriptions, pausing, cancellation, trials, webhooks, transactions, and testing. Check the current guide for the workflow and methods relevant to your application. Laravel Cashier (Paddle) documentation.
Paddle Classic Cashier Paddle 1.x, not the 2.x Paddle Billing integration. Do not assume a tutorial for Paddle Billing or Cashier Paddle 2.x applies to a Paddle Classic account. Confirm the provider generation and installed package before using examples. Laravel Cashier (Paddle) documentation.

Start with the provider account and billing product you intend to use, then verify that the documentation fits your Laravel and Cashier versions. Laravel’s current documentation is for Laravel 13.x; its examples and version details should not be assumed to match an older application without checking compatibility.

Set up the Stripe integration

The Stripe guide’s setup path includes installing the package, publishing and running its migrations, configuring webhook handling, and marking the appropriate Eloquent model billable. Follow the commands and configuration in the guide for the Cashier release installed in your project.

  1. Install the package: add laravel/cashier with Composer, following the installation instructions for your Laravel and Cashier versions.
  2. Publish and run the migrations: Cashier’s migrations add customer-related fields and create subscriptions and subscription_items tables. Review the generated changes and run the migrations using your normal database deployment process.
  3. Check identifier collation: Laravel’s guide notes Stripe’s recommendation that Stripe identifier columns be case-sensitive; for MySQL, it specifically mentions utf8_bin for stripe_id. Check the actual column and database configuration in your application rather than assuming the default is suitable.
  4. Configure webhook handling: set up Stripe webhook delivery according to the guide. Webhooks let the application respond to provider events; the documentation covers event handlers and signature verification.
  5. Make the relevant model billable: configure the model representing the customer or account that owns a subscription as billable, as described by Cashier. Then create the application flow that starts a subscription for that model.

Connect billing state to membership access

Stripe’s guide presents subscriptions using Products and fixed Prices configured in the Stripe dashboard, then shows how an application can create the selected subscription through a Laravel route. That billing flow does not, by itself, decide whether a person may enter a members-only area.

  • Define which application roles, features, or content each plan grants.
  • Choose how your app interprets subscription statuses and lifecycle changes, including trials, cancellation, and failed payments.
  • Use current provider-backed state and webhook-driven updates where appropriate; do not treat a successful checkout redirect as the only signal that access should remain enabled.
  • Decide what happens to access when a subscription is paused, canceled, resumed, or moved to another price. Implement those rules in your authorization and membership logic.

Cashier provides integration surfaces for common billing tasks, but entitlement rules belong to your product and application. Keep billing operations separate from the code that grants or denies access so that membership behavior is explicit and testable.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Compare lifecycle features before committing

Both integrations support subscription workflows, but feature parity should not be assumed. If a particular behavior is central to your membership model, verify the relevant provider-specific documentation before designing around it.

  • Plan changes and quantities: check the documented methods and constraints for changing prices or subscription quantities with your selected integration.
  • Trials and cancellation: confirm how trials, cancellation timing, and resumption work for the package generation you are installing, then align those events with your access policy.
  • Pausing and multiple subscriptions: Paddle’s 2.x guide documents pausing and multiple subscriptions. Confirm the corresponding capabilities and behavior in the Stripe documentation if you need them there.
  • Customer self-service: Stripe’s guide documents a hosted Billing Portal for customers to manage invoices, payment methods, and plan changes. For Paddle, confirm the currently documented customer workflow rather than assuming it is identical.
  • Webhooks and failure handling: review how the selected integration delivers and verifies events, and decide how your app handles payment failures or other billing changes.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Keep package generation and documentation aligned

Package generations matter especially with Paddle: Cashier Paddle 2.x is for Paddle Billing, while Paddle Classic is associated with Cashier Paddle 1.x. A tutorial can be syntactically plausible and still target the wrong provider generation. Check the package installed in the project, the provider account’s billing product, and the matching official guide before copying implementation details.

Stripe’s version details also require attention. The Laravel 13.x Stripe page identifies 2025-06-30.basil as the Stripe API version used by Cashier 16 and says that version can change in minor releases. When upgrading Cashier, review the release and documentation details for API-version or behavior changes instead of assuming older examples remain exact.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.