In Laravel 5.5 the service provider will automatically get registered. In older versions of the framework just add the service provider in config/app.php file:
'providers' => [
// ...
Spatie\Permission\PermissionServiceProvider::class,
];
php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="config"
<?
use Spatie\Permission\Models\Role;
use Spatie\Permission\Models\Permission;
$role = Role::create(['name' => 'writer']);
$permission = Permission::create(['name' => 'edit articles']);
# назначить роли права
$role->givePermissionTo($permission);
$permission->assignRole($role);
# назначить несколько ролей и прав
$role->syncPermissions($permissions);
$permission->syncRoles($roles);
# удалить права из роли (на пхп 7.2 не работает используй syncPermissions)
$role->revokePermissionTo($permission);
$permission->removeRole($role);
# получить права пользователя
$permissions = $user->permissions;
$permissions = $user->getAllPermissions();
# получить роли пользователя
$roles = $user->getRoleNames(); // Returns a collection
$user->hasPermissionTo('edit articles');