permissionsUser = $user; return $this; } protected function can(): Attribute { $model = $this; return Attribute::make( get: static function () use ($model) { $user = $model->permissionsUser ?? request()->user(); // if called from queue - use existing user return collect($model::PERMISSIONS)->mapWithKeys(static fn ($item) => [ $item => $user?->can(Str::camel($item), $model) ]); } )->shouldCache(); } }