Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Um comando direto ignora o prompt de revisão. Verifique a origem antes de executá-lo.
Build and work with Spatie Laravel Permission features, including roles, permissions, middleware, policies, teams, and Blade directives.
Laravel Permission Development
When to use this skill
Use this skill when working with authorization, roles, permissions, access control, middleware guards, or Blade permission directives using spatie/laravel-permission.
Core Concepts
Users have Roles, Roles have Permissions, Apps check Permissions (not Roles).
Direct permissions on users are an anti-pattern; assign permissions to roles instead.
Use $user->can('permission-name') for all authorization checks (supports Super Admin via Gate).
The HasRoles trait (which includes HasPermissions) is added to User models.
// Permission checks (preferred - supports Super Admin via Gate)$user->can('edit articles');
$user->canAny(['edit articles', 'delete articles']);
// Direct package methods (bypass Gate, no Super Admin support)$user->hasPermissionTo('edit articles');
$user->hasAnyPermission(['edit articles', 'publish articles']);
$user->hasAllPermissions(['edit articles', 'publish articles']);
$user->hasDirectPermission('edit articles');
// Role checks$user->hasRole('writer');
$user->hasAnyRole(['writer', 'editor']);
$user->hasAllRoles(['writer', 'editor']);
$user->hasExactRoles(['writer', 'editor']);
// Get assigned roles and permissions$user->getRoleNames(); // Collection of role name strings$user->getPermissionNames(); // Collection of permission name strings$user->getDirectPermissions(); // Direct permissions only$user->getPermissionsViaRoles(); // Inherited via roles$user->getAllPermissions(); // Both direct and inherited
Prefer @can (permission-based) over @role (role-based):
@can('edit articles')
{{-- User can edit articles (supports Super Admin) --}}
@endcan
@canany(['edit articles', 'delete articles'])
{{-- User can do at least one --}}
@endcanany
@role('admin')
{{-- Only use for super-admin type checks --}}
@endrole
@hasanyrole('writer|admin')
{{-- Has writer or admin --}}
@endhasanyrole