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