*/ public function toArray(Request $request): array { $data = parent::toArray($request); $resource = $this->resource; $modelClass = match (true) { $resource instanceof Model => $resource::class, $resource instanceof ProductDto => Product::class, $resource instanceof RecipeDto => Recipe::class, default => throw new \InvalidArgumentException('Resource must be an instance of ' . Model::class . ' or DTO'), }; $data['modelClass'] = $modelClass; $data['policies'] = Arr::wrap($data['policies'] ?? []); $data['policies']['create'] = Gate::allows('create', $modelClass); $data['policies']['viewAny'] = Gate::allows('viewAny', $modelClass); return $data; } }