id)->firstOrNew(); $model->user_id = $user->id; $model->token = Str::uuid(); $model->expires_at = DateUtil::now()->addHours(24); $model->save(); // メール送信 $email = (new PasswordSettingStart($model)) ->setEmail($user->email); $emailManager = new EmailManager($email); $emailManager->confirm(); } public function verify(string $token): User|null { $model = PasswordSettingToken::whereToken($token) ->expiresIn() ->first(); if ($model === null) { return null; } $user = User::whereId($model->user_id)->firstOrFail(); $model->delete(); return $user; } }