authorize('viewAny', Role::class); $roles = Role::query() ->with('permissions') ->withCount('users') ->orderBy('name') ->get(); return RoleResource::collection($roles); } public function show(Role $role): RoleResource { $this->authorize('view', $role); return RoleResource::make($role->load('permissions')->loadCount('users')); } /** * The full permission catalogue, grouped by resource — useful for building * a role editor outside the panel. */ public function catalogue(): JsonResponse { $this->authorize('viewAny', Role::class); return response()->json(['data' => Permissions::grouped()]); } }