Laravel upgrades

Laravel upgrade checklist

Use this for a major-version upgrade, whether you are taking one step or several. The framework changes are often the short part; this list covers the work around them, where upgrades usually go wrong.

By itmarkerz Technologies. Updated 30 October 2026.

1. Take stock

  • Run php artisan about and record the Laravel, PHP and driver versions in production.
  • Note the PHP version for web, CLI, cron and queue workers separately. They can differ.
  • Save composer.lock and the output of composer outdated --direct.
  • Run composer audit and note any known advisories.
  • List the database and cache engines and their versions. Check them against the target release.
  • List every integration: payment, email, ERP, CRM, webhooks, scheduled imports.
  • Write down the flows that must not break, and who in the business can confirm each one.

2. Choose the target

  • Check support dates on our Laravel versions page and aim for the latest supported release.
  • Confirm your hosting offers a PHP version that target accepts.
  • Run composer why-not laravel/framework ^13.0 to list blocking packages.
  • For each blocker, decide whether to update, replace or fork it.
  • Read the official upgrade guide for every version on the route, in order, and mark the items that apply.

3. Prepare a safety net

  • Bring the current test suite to green before changing anything, so failures later mean something.
  • Add tests or scripted checks for any critical flow with no coverage.
  • Set up a staging environment matching production PHP, database and queue configuration.
  • Take a backup and restore it somewhere to prove that it works.
  • Agree who decides on a rollback, and on what signal.

4. Make the changes

  • If PHP has to move, release that separately first where you can.
  • Work on a branch and take one major version at a time, committing at each stop.
  • Update first-party packages along with the framework. Some, such as Sanctum and Passport, have their own upgrade guides.
  • Compare your config files with the laravel/laravel repository, and adopt changes deliberately rather than copying them whole.
  • Replace deprecated names you find along the way, while the code is open.
  • Run the static analysis and code style tools you already use.

5. Check data and behaviour

  • Run php artisan migrate --pretend against a copy of production to read the SQL before it runs.
  • Compare figures from the old and new versions for invoices, totals, tax and report outputs.
  • Check date calculations. Carbon 3 changes what diffIn* methods return.
  • Check cached data and sessions written by the old version can still be read by the new one.
  • Process a queued job created by the old version, as jobs may be waiting during the release.
  • Exercise integrations against sandboxes, including inbound webhooks.
  • Have the people named in step 1 confirm their flows on staging.

6. Release

  • Choose a window with low traffic and people available, including someone from the business.
  • Take a fresh backup immediately before you start.
  • Run the deployment as rehearsed on staging, with any zero-downtime configuration you normally use.
  • Run php artisan optimize and restart long-running services with php artisan reload.
  • Check /up or your configured health route, then walk through the critical flows in production.
  • Keep the previous release ready to restore until you are satisfied.

7. The first week

  • Watch error logs, failed jobs, sign-ins and payment success rates against your normal levels.
  • Check scheduled tasks ran, including weekly and month-end ones when they fall due.
  • Record new deprecation notices and schedule them.
  • Remove compatibility shims, old branches and retired packages.
  • Put the next support end date in the calendar, so the next upgrade isn’t a surprise.

Where to go next

For the details of a particular step, read our guides to Laravel 12 to 13 and moving off PHP 8.1. If you want the work done, our upgrade service is priced after a free assessment. To keep up afterwards, our maintenance plan at USD 99/month, invoiced in the customer's local currency, covers framework, package and PHP updates.

Upgrades we have delivered

Questions

Can I print or save this checklist?

Yes. Use your browser's print or save-as-PDF option. There is no form to fill in.

Can I upgrade several major versions at once?

Yes, on one branch, but read each version's upgrade guide in order, because each has its own breaking changes. Release the end result rather than every stop along the way.

What should I do if I have no tests?

Before upgrading, write tests or a scripted manual check for the flows the business depends on, such as sign-in, payment and the main reports. You don't need full coverage, but you do need a way to notice a break.

Would you rather hand this over?

We will assess the application for free, then quote a fixed price for working through this list ourselves.

We reply within one business day (IST).