invalidatesActiveEmailVerificationAttempts = $invalidatesActiveEmailVerificationAttempts; $this->generatesEmailVerificationAttempt = $generatesEmailVerificationAttempt; $this->emailVerificationAttemptExpiration = $emailVerificationAttemptExpiration; $this->sendUserVerificationEmail = $sendUserVerificationEmail; } /** * @param User $user * @return void * @throws \App\Classes\Exceptions\MalformedRequestException */ public function execute(User $user) { $this->invalidatesActiveEmailVerificationAttempts->execute($user); $attempt = $this->generatesEmailVerificationAttempt->execute($user); $this->emailVerificationAttemptExpiration::dispatch($attempt)->delay(now()->addHours(48)); $this->sendUserVerificationEmail::dispatch($user, $attempt); } }