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(); } /** * @param string $token * @return Collection|null */ public function verify(string $token): Collection|null { $passwords = PasswordSettingToken::whereToken($token) ->expiresIn() ->get(); $users = User::whereIn( User::COL_NAME_ID, $passwords->pluck(PasswordSettingToken::COL_NAME_USER_ID) ) ->get(); foreach ($passwords as $password) { $password->delete(); } return $users; } }