Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Filament Cashier Billing Provider Laravel Package

maartenpaauw/filament-cashier-billing-provider

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture Fit

  • Filament + Cashier Synergy (Updated): Continues to bridge Laravel Cashier (Stripe integration) with Filament’s admin panel, maintaining alignment with SaaS platforms requiring subscription management. The package’s modular design remains intact, ensuring clean separation of concerns.
  • Laravel 13 & PHP 8.5 Support: Now officially supports Laravel 13 and PHP 8.5, which may introduce breaking changes if your project uses newer Laravel features (e.g., fn() helper, new dependency injection syntax). Verify compatibility with your existing codebase.
  • Cashier 16 Integration: Updated to Cashier 16, which may include new Stripe API features (e.g., Billing Portal) or deprecations. Review Cashier’s upgrade guide for changes.
  • Stripe-Centric Limitation: Still tightly coupled with Stripe via Cashier. Assess whether multi-gateway support (e.g., PayPal) is required, as this remains unsupported.

Integration Feasibility

  • Laravel 13 Dependency: Breaking Change: Drops Laravel 11 support. If your project is on Laravel 11, this package is no longer compatible. Upgrade path required if using Laravel 11.
  • Cashier 16 Prerequisites: Assumes Cashier 16 is installed. If using an older version, update Cashier first:
    composer require laravel/cashier:^16.0
    
    • Verify Billable trait methods (e.g., syncStripeSubscription) for changes in Cashier 16.
  • Filament Compatibility: Still requires Filament v3. Confirm your Filament version supports Laravel 13 (check Filament’s upgrade docs).
  • Multi-Tenancy: Tenant-aware features remain unchanged. Ensure your tenancy system (e.g., filament/tenancy) aligns with the package’s assumptions.

Technical Risk

  • Version Lock Risk: Last release in 2026 suggests active maintenance, but test thoroughly for breaking changes in:
    • Laravel 13 (e.g., new route/model binding syntax).
    • PHP 8.5 (e.g., new attributes, array_unpack changes).
    • Cashier 16 (e.g., Stripe API version updates).
  • Customization Overhead: May still require overrides for:
    • Custom billing fields (e.g., add-ons, coupons).
    • Workflow deviations (e.g., manual approvals, custom webhooks).
  • Webhook Handling: Stripe webhooks must be configured separately. Test with Cashier 16’s updated webhook handling (e.g., new event types like invoice.payment_failed).
  • Performance: Billing operations could still trigger heavy database queries. Profile under load, especially for high-volume tenants, with Laravel 13’s new features (e.g., Model::query() changes).

Key Questions

  1. Laravel 13 Readiness: Does your project use Laravel 13 features that might conflict with this package (e.g., fn() helper, new DI syntax)?
  2. Cashier 16 Changes: Are there new Cashier 16 features (e.g., Billing Portal) you want to leverage, or deprecated methods you’re using?
  3. Tenancy Model: With Laravel 13’s tenancy improvements, does the package’s tenant resolution logic still align with your setup?
  4. Testing Scope: Does the package include tests for Laravel 13/PHP 8.5 edge cases (e.g., new attribute syntax, type changes)?
  5. Auditability: Are billing actions logged in a way that’s compatible with Laravel 13’s logging system (e.g., new log channels)?

Integration Approach

Stack Fit

  • Laravel 13/PHP 8.5: Native compatibility with Laravel 13 and PHP 8.5. Ideal for projects already using these versions.
  • Cashier 16 Dependency: Requires Cashier 16’s Stripe API keys and Billable trait. Ensure your AppServiceProvider or CashierServiceProvider is updated for Laravel 13:
    // Example: Updated for Laravel 13
    public function boot(): void
    {
        Cashier::useStripe();
        Cashier::useLiveMode(env('CASHIER_LIVE_MODE', false));
    }
    
  • Filament Panel: Best suited for filament/panel or filament/tenancy setups. For filament/spatie-laravel-tenancy, verify tenant model alignment remains unchanged.

Migration Path

  1. Prerequisites:
    • Upgrade Laravel to 13:
      composer require laravel/framework:^13.0
      
      Follow Laravel’s upgrade guide.
    • Upgrade Cashier to 16:
      composer require laravel/cashier:^16.0
      
      Publish and run migrations:
      php artisan vendor:publish --provider="Laravel\Cashier\CashierServiceProvider"
      php artisan migrate
      
    • Add Billable trait to your tenant/user model (verify no breaking changes in Cashier 16).
  2. Package Installation:
    composer require maartenpaauw/filament-cashier-billing-provider:^3.1
    
    • Publish the package’s config (if needed):
      php artisan vendor:publish --provider="MaartenPaauw\FilamentCashierBillingProvider\FilamentCashierBillingProviderServiceProvider"
      
  3. Configuration:
    • Bind the billing provider to your Filament panel in app/Providers/Filament/AdminPanelProvider.php (unchanged):
      public function panel(Panel $panel): Panel
      {
          return $panel
              ->plugins([
                  \MaartenPaauw\FilamentCashierBillingProvider\FilamentCashierBillingProvider::make(),
              ]);
      }
      
    • Update Stripe keys in .env (no changes expected):
      STRIPE_KEY=your_stripe_key
      STRIPE_SECRET=your_stripe_secret
      CASHIER_CURRENCY=usd
      
  4. Testing:
    • Test in a staging environment with Laravel 13, PHP 8.5, and sandbox Stripe keys.
    • Verify:
      • Tenant isolation with Laravel 13’s tenancy improvements.
      • Webhook handling with Cashier 16’s updated events.
      • Edge cases (e.g., failed payments, canceled subscriptions) in the new stack.

Compatibility

  • Filament Plugins: May still conflict with other Filament plugins managing users/tenants. Audit for overlaps, especially with Filament v3’s updated plugin system.
  • Cashier Customizations: If you’ve extended Cashier (e.g., custom billing events), ensure compatibility with Cashier 16’s changes. Review Cashier’s upgrade guide.
  • Localization: No changes expected, but verify if Cashier 16 introduces new localization requirements (e.g., for Billing Portal).

Sequencing

  1. Phase 1: Stack Upgrade
    • Upgrade Laravel to 13 and Cashier to 16 in a staging environment.
    • Test core functionality (e.g., subscription creation/cancellation) without the package.
  2. Phase 2: Package Integration
    • Install and configure the package (v3.1.0).
    • Test basic CRUD for a single tenant.
  3. Phase 3: Multi-Tenancy Validation
    • Test with 2–3 tenants to validate isolation in Laravel 13’s tenancy system.
    • Simulate concurrent subscription updates.
  4. Phase 4: Advanced Features
    • Implement custom billing logic (e.g., trial extensions, prorations) using Cashier 16’s new features.
    • Integrate with webhooks and notification systems (test with Stripe CLI).
  5. Phase 5: Rollout
    • Deploy to staging with a subset of users.
    • Monitor Stripe webhook delivery and Filament UI performance in Laravel 13.

Operational Impact

Maintenance

  • Dependency Updates:
    • Monitor Filament, Cashier, and Laravel for breaking changes. The package’s MIT license allows forks if needed.
    • Critical: Laravel 13 and PHP 8.5 may introduce new deprecations or syntax changes (e.g., array_merge behavior, new attributes).
  • Stripe API Changes: Cashier 16 may use newer Stripe API versions. Test after Stripe updates to ensure compatibility.
  • Logging: Update logging to leverage Laravel 13’s new features (e.g., structured logging):
    \Log
    
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
jayeshmepani/jpl-moshier-ephemeris-php
elnasnato/laraliveui
labrodev/rest-sdk
sampaui/sampaui
babelqueue/php-sdk
facebook/capi-param-builder-php
babelqueue/symfony
hamzi/corewatch
minionfactory/raw-hydrator
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui
devgeek/beacon-admin
benjamin-rqt/data-watcher-bundle