- How do I install and set up the Filament Cashier billing provider?
- Install it with composer require maartenpaauw/filament-cashier-billing-provider, then make sure your Cashier Billable model is the same as your Filament tenant model. Add the package's BillingProvider to your panel provider, such as AdminPanelProvider, alongside your other panel configuration. After that you can define plans in cashier.php and manage tenant subscriptions from the panel.
- How do I configure subscription plans in cashier.php?
- Add a plans array to your config/cashier.php and key each entry by the plan name you want to reference. Every plan needs a product_id and price_id, plus optional keys such as type, trial_days, has_generic_trial, allow_promotion_codes, collect_tax_ids and metered_price. When you do not set type explicitly, the array key is used as the plan type.
- Which Laravel, Filament, PHP and Cashier versions does this package support?
- The current v3.x line supports Laravel 13, PHP 8.5, Laravel Cashier 16 and Filament 4 or 5. Laravel 11 support was removed and Filament 3 support was dropped in v3.0.0, so older applications need an earlier package line or a framework upgrade. Pin exact versions and record the supported matrix in your project constraints before adopting.
- Does this package support one-time payments or only recurring subscriptions?
- Only recurring subscriptions, as the README explicitly states. One-time payments and broader billing workflows outside Cashier's subscription flows are not covered by the package. If your product roadmap includes those, plan to build them yourself or choose a different billing integration.
- Can I use this package if I bill users rather than tenants?
- It is a poor fit, because the package assumes your Filament tenant model is also the Cashier Billable model. Setups where users are billed while tenants own the subscription, or where billing is shared across tenants, need a custom adapter. Treat this constraint as an architecture decision rather than an implementation detail.
- How do I restrict Filament panel access to tenants with an active subscription?
- Apply the package's requiresTenantSubscription() middleware to the panel after verifying the gating behaviour in staging. The middleware reads Cashier subscription state from the tenant model, so confirm tenant resolution is reliable in panel, middleware and webhook contexts. Keep a config toggle so gating can be disabled during incident response.
- How do trials, promotion codes, tax IDs and metered prices work in the plan config?
- Set trial_days or has_generic_trial to offer a trial, but not both at once. Use allow_promotion_codes to let customers redeem Stripe promotion codes at checkout, collect_tax_ids to collect tax IDs, and metered_price when the plan uses metered recurring pricing. All of these are optional keys inside each plan entry in cashier.php.
- Is this package production ready given its adoption numbers?
- Adoption signals are weak at roughly 104 GitHub stars and zero reported dependents, with a single maintainer. That does not block use, but it shifts the validation burden onto your team, so run a time-boxed staging spike against Stripe test mode first. Also check commit activity for the exact Filament, Laravel, PHP and Cashier versions you run.
- What happens if the maintainer stops releasing compatibility updates?
- The package's value depends on upstream compatibility with Filament, Laravel, PHP and Cashier, and its major versions track Filament majors, so upgrades require testing. Budget for recurring maintenance on major-version bumps rather than treating it as a one-off install. Keep a fallback, such as forking the package or wiring Cashier's billing provider and subscription gating yourself.
- How should I test Cashier billing before enabling it for real tenants?
- Run a time-boxed staging spike in Stripe test mode: install the package, configure two plans, and verify trials, promotion codes, tax ID collection, metered price behaviour, subscription gating and redirects. Then pilot with one internal tenant to confirm webhook-driven subscription state changes before rolling out to production tenants. Keep a feature flag so billing can be switched off quickly if something goes wrong.