One thing I'd add to the deploy checklist: Supervisor keeps your queue workers alive across reboots, but it does not restart them when you ship new code. We learned this on a dashboard app: after a deploy, the workers kept running the old release's code, so a queued report job referenced a column we had just renamed and failed quietly for the better part of a day. Now every deploy ends with php artisan queue:restart, which signals the workers to finish their current job and exit so Supervisor boots them on the new code. It's one line, but it closes the gap between "deployed" and "actually running the new code".
Full-Stack Web Developer (React.js + Laravel) | Dashboards, SaaS Apps & Management Systems for Global Clients
Kamran Khan
One thing I'd add to the deploy checklist: Supervisor keeps your queue workers alive across reboots, but it does not restart them when you ship new code. We learned this on a dashboard app: after a deploy, the workers kept running the old release's code, so a queued report job referenced a column we had just renamed and failed quietly for the better part of a day. Now every deploy ends with php artisan queue:restart, which signals the workers to finish their current job and exit so Supervisor boots them on the new code. It's one line, but it closes the gap between "deployed" and "actually running the new code".