📞 +1-251-272-9267 | ✉️ [email protected]
Web Mavens

Laravel Version Support Matrix and Upgrade Checklist

Last reviewed: · Written by the Web Mavens Laravel team

Two questions come up in nearly every upgrade conversation we have: "Is our Laravel version still supported?" and "What PHP version can we run?" The tables below answer both, using the official Laravel and PHP support schedules. After them is the checklist we follow when we upgrade an application one major version at a time.

Laravel's policy is the same for every release: bug fixes for 18 months, security fixes for two years. PHP branches get two years of active support, then two years of security fixes only.

Laravel version support matrix

LaravelPHPReleasedBug fixes untilSecurity fixes untilStatus
138.3 – 8.5Mar 17, 2026Q3 2027Mar 17, 2028Supported
128.2 – 8.5Feb 24, 2025Aug 13, 2026Feb 24, 2027Security fixes only
118.2 – 8.4Mar 12, 2024Sep 3, 2025Mar 12, 2026End of life
108.1 – 8.3Feb 14, 2023Aug 6, 2024Feb 4, 2025End of life
98.0 – 8.2Feb 8, 2022Aug 8, 2023Feb 6, 2024End of life
87.3 – 8.1Sep 8, 2020Jul 26, 2022Jan 24, 2023End of life
77.2 – 8.0Mar 3, 2020Oct 6, 2020Mar 3, 2021End of life
6 (LTS)7.2 – 8.0Sep 3, 2019Jan 25, 2022Sep 6, 2022End of life

Dates and PHP ranges come from the support policy tables in the Laravel 13, Laravel 10 and Laravel 8 release notes. Laravel lists the Laravel 13 bug-fix end only as Q3 2027. For Laravel 9, older docs give PHP 8.0–8.1 and newer docs give 8.0–8.2; we show the newer range. Status is as of October 20, 2026. Laravel 5.x and earlier are long past end of life.

PHP version support

PHPReleasedActive support untilSecurity support untilStatus
8.5Nov 20, 2025Dec 31, 2027Dec 31, 2029Active support
8.4Nov 21, 2024Dec 31, 2026Dec 31, 2028Active support
8.3Nov 23, 2023Dec 31, 2025Dec 31, 2027Security fixes only
8.2Dec 8, 2022Dec 31, 2024Dec 31, 2026Security fixes only
8.1——Dec 31, 2025End of life
8.0——Nov 26, 2023End of life
7.4——Nov 28, 2022End of life

From php.net supported versions and php.net unsupported branches. For end-of-life branches the last column is the end-of-life date. Status is as of October 20, 2026.

What this means right now

  • Laravel 13 is the only release still getting bug fixes. It needs PHP 8.3 or newer.
  • Laravel 12 gets security fixes only, until February 24, 2027. If you're on 12, plan the move to 13 in the next few months rather than waiting for the deadline.
  • Laravel 11 and older no longer get security fixes. Laravel 11's ended on March 12, 2026.
  • PHP 8.2 stops getting security fixes on December 31, 2026. If your Laravel 11 or 12 app still runs on 8.2, move it to PHP 8.3 or 8.4. Laravel 12 supports both, and you need 8.3 or newer for Laravel 13 anyway.
  • PHP 8.1 and older are already end of life. An app that can't run on PHP 8.2 or later is on an unsupported runtime and an unsupported framework at the same time.

Laravel upgrade checklist

This is the order we work in. It assumes a production app that real users depend on, not a weekend side project.

1. Audit what you actually run

  • Record the Laravel and PHP versions on every environment, not just your laptop: local, CI, staging, production web servers, queue workers and the box that runs the scheduler. php artisan --version and php -v on each.
  • List direct dependencies that are behind with composer outdated --direct, and check for known vulnerabilities with composer audit.
  • Find what blocks the next major version with composer prohibits laravel/framework 13.0 (also available as why-not), using the version you're targeting.
  • Note anything that isn't Composer-managed: copied-in packages, patched vendor files, custom PHP extensions and server-level config.

2. Build a safety net before you change anything

  • Get the existing test suite green on the current version first, so you can tell an upgrade regression from an old failure.
  • If coverage is thin, add smoke tests around the paths that matter most: login, checkout or billing, key integrations, and anything that sends email or webhooks.
  • Make sure error tracking and queue monitoring are in place on staging and production, so problems show up quickly after release.

3. Plan the PHP and Laravel steps together

  • Use the matrix above to find a PHP version supported by both your current Laravel version and the next one, and move PHP on that overlap. For example, PHP 8.3 runs Laravel 11, 12 and 13.
  • Upgrade one Laravel major version at a time: 10 to 11, then 11 to 12, then 12 to 13. Each step gets its own branch, tests and deploy.
  • Read the official upgrade guide for each step at laravel.com/docs/<version>/upgrade. The guides sort changes by likely impact, so start with the high-impact ones.

4. Use tooling, but review everything it changes

  • Laravel Shift is a community-maintained, paid service that automates much of each upgrade as a pull request. Laravel's own upgrade guides mention it.
  • Rector with the rector-laravel rules can make many of the code-level changes for you, and can pick the right rule sets from your composer.json.
  • For 12 to 13, the Laravel 13 upgrade guide also describes Laravel Boost's guided upgrade command for AI coding assistants.
  • Automated changes still need a human review and a full test run. The tools handle the mechanical changes well; behavior changes are what they miss.

5. Update dependencies deliberately

  • Change the constraints the upgrade guide lists. For Laravel 13 that includes laravel/framework ^13.0, laravel/tinker ^3.0, and PHPUnit 12 or Pest 4.
  • Check first-party and major packages (Nova, Horizon, Sanctum, Cashier, Livewire, Filament, Inertia) for the version that supports your target release. Some need their own upgrade guide.
  • Replace or fork abandoned packages rather than pinning them forever. Then run composer update with -W so related dependencies move together, and commit the lock file.

6. Review configuration and behavior changes

  • Compare your config files with the laravel/laravel skeleton for the target version. You don't have to copy everything. For 10 to 11, the official guide specifically recommends not moving to the new, slimmer application structure.
  • Watch for changes that only show up at runtime. Laravel 13's guide has several: the CSRF middleware is renamed to PreventRequestForgery. Default cache and Redis prefixes and the session cookie name change unless you set CACHE_PREFIX, REDIS_PREFIX and SESSION_COOKIE. A new serializable_classes cache setting restricts which objects can be unserialized from cache. And switching session serialization to json logs out every active user.
  • Search for anything relying on framework internals: overridden core classes, macros and custom drivers.

7. Handle queues, the scheduler and caches

  • Let queues drain, or at least know which jobs are in flight, before you deploy a major upgrade. Jobs serialized by the old version are processed by the new code.
  • Restart workers after the deploy (php artisan queue:restart, or horizon:terminate with Horizon) so they load the new code.
  • Rebuild the config, route and view caches as part of the deploy (php artisan optimize), and confirm scheduled tasks still run.

8. Deploy like it matters

  • Run the upgrade on staging with production-like data first. If the app holds PHI or payment data, use de-identified or synthetic data.
  • Have a rollback plan you've actually tried: the previous release ready to restore, a database backup, and migrations you know how to reverse.
  • Release in a quiet window, then watch error rates, queue backlogs and key business events for the first few hours.

9. Stay current afterwards

  • Apply minor and patch releases regularly. They shouldn't contain breaking changes, and small frequent updates are easier than big rare ones.
  • New Laravel majors arrive roughly every first quarter, so put next year's upgrade on the calendar now. Check PHP end-of-life dates at the same time.

Want someone else to handle the upgrade?

We upgrade production Laravel applications one major version at a time, with tests at every step and each version as its own reviewable pull request. Start with a free review of your composer.json and composer.lock.

See our Laravel upgrade service

Sources

All checked on October 20, 2026.

Related: Laravel upgrade service · Laravel development company · Hire Laravel developers