wasChanged('status') && $consultation->status === ConsultationStatus::Approved) { $this->sendApprovalEmail($consultation); } } protected function sendApprovalEmail(Consultation $consultation): void { $consultation->loadMissing('user'); $icsContent = $this->calendarService->generateIcs($consultation); $paymentInstructions = null; if ($consultation->consultation_type === ConsultationType::Paid) { $paymentInstructions = $this->getPaymentInstructions($consultation); } Mail::to($consultation->user) ->queue(new BookingApprovedMail($consultation, $icsContent, $paymentInstructions)); } protected function getPaymentInstructions(Consultation $consultation): string { $locale = $consultation->user->preferred_language ?? 'ar'; $amount = number_format($consultation->payment_amount ?? 0, 2); if ($locale === 'ar') { return "يرجى دفع مبلغ {$amount} شيكل قبل موعد الاستشارة."; } return "Please pay {$amount} ILS before your consultation."; } }