Separate policy from provider permission
Open Automation & renewals and review a read-only dry run first. Automatic suspension and paid restoration are distinct flags; termination and order/invoice/domain-invoice cancellation each have their own policy. Delay accepts 1–3,650 with days, weeks or calendar months. Month delays use calendar-aware boundaries, not a fixed 30-day substitution. Batch limits are 1–100.
A global enabled policy does not grant a server token permission. The mapped connection must independently permit the corresponding automated suspend, unsuspend or terminate action, and the module must actually support it. Missing required schema migrations hold policy enabling rather than silently ignoring enforcement.
Eligibility and safety
Review outstanding invoice, service state, owner, seller/currency, exact remote mapping, cancellation/review state and previous action history. Suspended is different from terminated. Paid restoration is permitted only when its guarded financial and provider state checks pass; a manually suspended account is not automatically authorised for reopening merely because any invoice was paid.
Termination can delete the remote hosting account. It requires an explicitly enabled lifecycle policy, supported connection/module capability and a remotely confirmed suspended account. Do not use it on a production server until backup/restoration and actual provider acceptance have been rehearsed independently.
Preview and apply
Run php artisan emaila:service-automation --dry-run in the correct release to inspect eligible/held services without provider contact or mutations. Correct the specific hold, test an expendable isolated account, then enable only the intended policy. The normal scheduler handles bounded runs and records their results.
Failure recovery
A timeout may occur after a remote state change. Synchronize and inspect the same account before another action. Do not edit a local suspension state to manufacture eligibility or clear durable action records. Reverting the checkbox prevents future runs but does not undo an account already deleted by a provider. Keep meaningful audit/operation history and the original private configuration for recovery.

