public function createEmailVerification() : EmailVerification { // delete any existing verifications EmailVerification::where('email', '=', $email = $this->email)->delete(); // create verification /** @var EmailVerification $emailVerification */ $emailVerification = new EmailVerification(['email' => $email]); $emailVerification->setVerifiable($this); $emailVerification->setToken(); $emailVerification->save(); // todo change to notification and utilize the notifiable helper to automatically determine whether it's a user or shop $this->notify(new VerifyEmailNotification($emailVerification)); return $emailVerification; }