onQueue('emails'); } public function handle(): void { if ($this->user->hasReceivedEmail(DripEmailType::PromoCode)) { return; } if (! $this->user->isOnboarded()) { return; } if (! $this->user->transactions()->exists()) { return; } if ($this->user->hasProPlan()) { return; } Mail::to($this->user)->send(new PromoCodeEmail($this->user)); UserMailLog::create([ 'user_id' => $this->user->id, 'email_type' => DripEmailType::PromoCode, 'email_identifier' => DripEmailType::PromoCode->value, 'sent_at' => now(), ]); } }