Manage user permissions and roles
mainThe spatie/laravel-permission package allows you to manage user permissions and roles within a database. It integrates directly with Laravel's built-in authorization system (Gates), meaning once permissions are assigned, you can use Laravel's standard can method to check for authorization.
// Adding permissions to a user
$user->givePermissionTo('edit articles');
// Adding permissions via a role
$user->assignRole('writer');
// Adding permissions to a role
$role->givePermissionTo('edit articles');
// Checking permissions using Laravel's default gate
$user->can('edit articles');