find($this->moduleVmwareId); if (!$vm) { $msg = "ResendVmCredentialsEmailJob: ModuleVmware #{$this->moduleVmwareId} not found"; Log::error($msg); $telegram->SendErrorMessage($msg); return; } $customer = $vm->customer; if (!$customer?->email) { $msg = "ResendVmCredentialsEmailJob: customer or email missing for ModuleVmware #{$this->moduleVmwareId}"; Log::error($msg, ['module_vmware_id' => $this->moduleVmwareId]); $telegram->SendErrorMessage($msg); return; } $orderItem = $vm->order?->orderItems?->first(); $emailData = app(VmCredentialsEmailDataBuilder::class)->build($vm, $orderItem); $invoice = Invoice::where('order_id', $vm->order_id)->first(); SendInformationVirtualMachine::dispatch($emailData, $customer, $invoice?->id); Log::info('ResendVmCredentialsEmailJob: email dispatched', [ 'module_vmware_id' => $this->moduleVmwareId, 'customer_email' => $customer->email, ]); } public function failed(\Throwable $e): void { Log::error('ResendVmCredentialsEmailJob: failed', [ 'module_vmware_id' => $this->moduleVmwareId, 'error' => $e->getMessage(), ]); } }