modelClass = $modelClass ?: self::guessModelClass(); $this->model = app($this->modelClass); // This instantiation may fail during a console command if e.g. APP_KEY is empty, // rendering the whole installation failing. attempt(fn () => $this->auth = app(Guard::class), false); } private static function guessModelClass(): string { return preg_replace('/(.+)\\\\Repositories\\\\(.+)Repository$/m', '$1\Models\\\$2', static::class); } public function getOneById($id): ?Model { return $this->model->find($id); } /** @return Collection|array */ public function getByIds(array $ids): Collection { return $this->model->find($ids); } /** @return Collection|array */ public function getAll(): Collection { return $this->model->all(); } public function getFirstWhere(...$params): ?Model { return $this->model->firstWhere(...$params); } public function getModelClass(): string { return $this->modelClass; } }