customer(); $instance = $customer?->instances()->latest('id')->first(); if ($instance === null || $instance->status === 'cancellation_scheduled') { return $this->redirectRoute('settings', navigate: true); } // Typed confirmation must match the instance subdomain. if (trim($this->confirmName) !== (string) $instance->subdomain) { $this->addError('confirmName', __('settings.cancel_mismatch')); return; } $instance->update([ 'status' => 'cancellation_scheduled', 'cancel_requested_at' => now(), 'service_ends_at' => now()->endOfMonth(), // end of the billing term ]); return $this->redirectRoute('settings', navigate: true); } private function customer(): ?Customer { $user = auth()->user(); if (! $user) { return null; } return Customer::query()->where('user_id', $user->id)->first() ?? Customer::query()->where('email', $user->email)->first(); } public function render() { $instance = $this->customer()?->instances()->latest('id')->first(); return view('livewire.confirm-cancel-package', [ 'subdomain' => $instance?->subdomain ?? '', ]); } }