model->all(); } public function store(UserDto $userDto): User { return $this->model->create([ 'name' => $userDto->name, 'email' => $userDto->email, 'password' => bcrypt($userDto->password), 'type' => $userDto->type, ]); } public function update(UserDto $userDto, int $id): ?User { $user = $this->model->findOrFail($id); $user->update([ 'name' => $userDto->name, 'email' => $userDto->email, 'password' => bcrypt($userDto->password), 'type' => $userDto->type, ]); return $user; } public function delete(int $id): bool { return $this->model->destroy($id); } public function find(int $id): ?User { return $this->model->findOrFail($id); } public function findByEmail(string $email): ?User { return $this->model->where('email', $email)->first(); } public function updateLanguage(UserLanguageDto $languageDto, int $id): ?User { $user = $this->model->findOrFail($id); $user->update([ 'language' => $languageDto->language, ]); return $user; } }