token = $token; $this->email = $email; } public function via($notifiable) { return ['mail']; // WAJIB: pakai channel yang valid } public function toMail($notifiable) { $resetUrl = URL::temporarySignedRoute( 'password.reset', Carbon::now()->addMinutes(60), ['token' => $this->token, 'email' => $this->email] ); // Kirim langsung lewat Brevo API Http::withHeaders([ 'api-key' => env('BREVO_API_KEY'), 'Content-Type' => 'application/json', 'accept' => 'application/json', ])->post('https://api.brevo.com/v3/smtp/email', [ 'sender' => [ 'name' => 'Pintera Website', 'email' => 'agya.rwildanti@gmail.com' // HARUS diverifikasi di Brevo ], 'to' => [ ['email' => $this->email], ], 'subject' => 'Reset Password Aplikasi Kamu', 'htmlContent' => "

Klik link berikut untuk mereset password:

Reset Password

Link berlaku 60 menit.

", ]); // Return dummy MailMessage agar Laravel tidak error return (new MailMessage) ->subject('Reset Password sedang diproses...') ->line('Link reset sudah dikirim ke email Anda.'); } }