next_patient = Waitlist::orderBy('created_at', 'asc')->where('verified', true)->first(); if ($this->next_patient) { $this->register_user(); $this->remove_from_waitlist(); $this->send_email(); } else { $this->info('No verified user found in the waitlist. 👀'); } } private function register_user() { $already_registered = User::whereEmail($this->next_patient->email)->first(); if (!$already_registered) { $this->password = Str::password(); $this->new_user = User::create([ 'name' => Str::of($this->next_patient->email)->before('@'), 'email' => $this->next_patient->email, 'password' => Hash::make($this->password), 'force_password_reset' => true, ]); $this->info("User registered ({$this->next_patient->email}) successfully. 🎉"); } else { throw new \Exception('User already registered'); } } private function remove_from_waitlist() { $this->next_patient->delete(); $this->info("User removed from waitlist successfully."); } private function send_email() { $mail = new MailMessage(); $mail->view('emails.waitlist-invitation', [ 'email' => $this->next_patient->email, 'password' => $this->password, ]); $mail->subject('Congratulations! You are invited to join Coolify Cloud.'); send_user_an_email($mail, $this->next_patient->email); $this->info("Email sent successfully. 📧"); } }