order->customer; $serverName = $item->server_name ?? ('VM-' . $vmId); $months = (int) ($item->months ?? 0); $firstPayment = (int) $item->price * ($months ?: 1); $nextDueDate = $months > 0 ? now()->addMonths($months)->timestamp : null; return ModuleVmware::create([ 'name' => $serverName, 'module_ip_address' => null, 'ip' => null, 'port' => $infra->vmPort, 'order_id' => $item->order->id, 'first_payment' => $firstPayment, 'next_payment' => $firstPayment, 'next_due_date' => $nextDueDate, 'next_invoice' => $nextDueDate, 'user' => $infra->vmUser, 'password' => VmProvisionService::templatePassword(), 'plain_password' => VmProvisionService::templatePassword(), 'hostname' => $serverName, 'vmware_id' => $vmId, 'vcenter_id' => $infra->vcenter->id, 'os_id' => $item->os_id ?? 1, 'customer_id' => $customer->id, 'status' => 1, ]); } }