Extending

If you need to EXTEND the existing Role or Permission models note that:

  • Your Role model needs to extend the Spatie\Permission\Models\Role model
  • Your Permission model needs to extend the Spatie\Permission\Models\Permission model

If you need to REPLACE the existing Role or Permission models you need to keep the following things in mind:

  • Your Role model needs to implement the Spatie\Permission\Contracts\Role contract
  • Your Permission model needs to implement the Spatie\Permission\Contracts\Permission contract

In BOTH cases, whether extending or replacing, you will need to specify your new models in the configuration. To do this you must update the models.role and models.permission values in the configuration file after publishing the configuration with this command:

php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="config"