cacheService = app('CacheService'); } function hasRoles(User $user, $roles){ $thisRoles=$this->cacheService->getOrExecute("user{$user['id']}->roles",function()use($user){ return $user->roles; }); return !!$roles->intersect($thisRoles)->count(); } function getPermittingOwnerIds($user=null){ if(!$user)return []; return $this->cacheService->getOrExecute("user{$user['id']}->getPermittingOwnerIds",function()use($user){ return $user->getPermittingOwnerIdsAttribute() ?? []; })??[]; } }