user(); if (! $user) { return false; } if ($user->role === 'admin') { return true; } $rolePermissions = Cache::remember('role_permissions:' . $user->role, 3600, function () use ($user) { return \DB::table('role_permissions') ->join('permissions', 'role_permissions.permission_id', '=', 'permissions.id') ->where('role_permissions.role', $user->role) ->pluck('permissions.key') ->toArray(); }); return in_array($permission, $rolePermissions); }); } }