Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

cameron's avatar

L5 Cashier

Hi all,

I've just installed Cashier on L5, I've added the service provider to my config file and I am now being presented with this error on every page and the artisan commands:

BadMethodCallException in ServiceProvider.php line 140:
Call to undefined method [package]
in ServiceProvider.php line 140
at ServiceProvider->__call('package', array('laravel/cashier')) in CashierServiceProvider.php line 21
at CashierServiceProvider->package('laravel/cashier') in CashierServiceProvider.php line 21
at CashierServiceProvider->boot()
at call_user_func_array(array(object(CashierServiceProvider), 'boot'), array()) in Container.php line 523
at Container->call(array(object(CashierServiceProvider), 'boot')) in Application.php line 597
at Application->bootProvider(object(CashierServiceProvider)) in Application.php line 579
at Application->Illuminate\Foundation\{closure}(object(CashierServiceProvider), '14')
at array_walk(array(object(EventServiceProvider), object(RoutingServiceProvider), object(AuthServiceProvider), object(ControllerServiceProvider), object(CookieServiceProvider), object(DatabaseServiceProvider), object(EncryptionServiceProvider), object(FilesystemServiceProvider), object(FormRequestServiceProvider), object(FoundationServiceProvider), object(PaginationServiceProvider), object(SessionServiceProvider), object(ValidationServiceProvider), object(ViewServiceProvider), object(CashierServiceProvider), object(AppServiceProvider), object(BusServiceProvider), object(ConfigServiceProvider), object(EventServiceProvider), object(RouteServiceProvider), object(ObserverServiceProvider)), object(Closure)) in Application.php line 580
at Application->boot() in BootProviders.php line 15
at BootProviders->bootstrap(object(Application)) in Application.php line 151
at Application->bootstrapWith(array('Illuminate\Foundation\Bootstrap\DetectEnvironment', 'Illuminate\Foundation\Bootstrap\LoadConfiguration', 'Illuminate\Foundation\Bootstrap\ConfigureLogging', 'Illuminate\Foundation\Bootstrap\HandleExceptions', 'Illuminate\Foundation\Bootstrap\RegisterFacades', 'Illuminate\Foundation\Bootstrap\RegisterProviders', 'Illuminate\Foundation\Bootstrap\BootProviders')) in Kernel.php line 140
at Kernel->bootstrap() in Kernel.php line 103
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 83
at Kernel->handle(object(Request)) in index.php line 53

Am I correct in thinking that Cashier doesn't work on L5 for the time being!?

Thanks

0 likes
3 replies
xuma's avatar
xuma
Best Answer
Level 9

Specially if you get this message Call to undefined method [package] means that package not ported for L5 yet.

cameron's avatar

That's a shame, thanks for your help!

xuma's avatar

You can try to update service provider.

<?php namespace Laravel\Cashier;

use Illuminate\Support\ServiceProvider;

class CashierServiceProvider extends ServiceProvider {

    /**
     * Indicates if loading of the provider is deferred.
     *
     * @var bool
     */
    protected $defer = false;

    /**
     * Register the service provider.
     *
     * @return void
     */
    public function register()
    {
        $this->registerServices();
        $this->registerResources();
    }

    /**
     * Get the services provided by the provider.
     *
     * @return array
     */
    public function provides()
    {
        return array();
    }

    protected function registerServices()
    {
        $this->app->bindShared('Laravel\Cashier\BillableRepositoryInterface', function()
        {
            return new EloquentBillableRepository;
        });

        $this->app->bindShared('command.cashier.table', function($app)
        {
            return new CashierTableCommand;
        });

        $this->commands('command.cashier.table');
    }

    protected function registerResources()
    {
    }

}
2 likes

Please or to participate in this conversation.