Laravel upgrades

Laravel 10 end of life: your upgrade options

Laravel 10 lost security fixes on February 4, 2025. You have four realistic options, and the difference between them is mostly how much of the step to Laravel 11 you want to deal with at once.

By itmarkerz Technologies. Updated 30 October 2026.

The four options

Options for moving off Laravel 10
OptionYou getThe catch
Stay, and move PHP to 8.3A supported PHP version with no framework changesThe framework itself still gets no security fixes
Go to Laravel 11The hardest step doneLaravel 11 security fixes ended on March 12, 2026, so you are still unsupported
Go to Laravel 12A supported framework todaySecurity fixes end on February 24, 2027, so another upgrade follows soon
Go to Laravel 13Security fixes until March 17, 2028Needs PHP 8.3 or later and every package ready for 13

We normally recommend the last one. Treat the first as a stopgap when a full upgrade can’t start for a while, and treat Laravel 11 as a milestone inside the project, never as the destination.

Why the step to Laravel 11 is the hard one

Laravel’s Laravel 11 upgrade guide estimates 15 minutes, which assumes none of the following touch you. On an older application, some usually do.

  • Column changes in migrations. A change() call now has to restate every attribute you want to keep, such as unsigned, default and comment. Missing ones are dropped. Squashing migrations with php artisan schema:dump is the documented way around rewriting old ones.
  • Float and double columns. The double and float types were rewritten, and the unsignedDecimal, unsignedDouble and unsignedFloat methods were removed. Money and measurement columns deserve a close look.
  • First-party packages. Cashier Stripe, Passport, Sanctum, Spark Stripe and Telescope no longer load their own migrations, so you publish them. Passport 12 also turns the password grant off by default, which can break older API clients without any code error.
  • Rate limiting. Limits moved to seconds. If your code builds Limit objects by hand or reads decayMinutes, those values change meaning.
  • Server versions. PHP 8.2 and curl 7.34 are the new minimums, and SQLite users need 3.26 or later.

Carbon 3 is optional at this step but becomes mandatory in Laravel 12. Its diffIn* methods can return floats and negative values, which quietly changes date arithmetic in reports and billing, so test those paths whenever you make the switch.

A sensible order of work

  1. Move PHP to 8.3 on Laravel 10 and release that on its own. Any fault is then clearly about PHP.
  2. Go to Laravel 11 on a branch and deal with migrations, packages and rate limits.
  3. Continue to 12 and then 13 on the same branch, reading each guide.
  4. Release the result as one change, staged, with a tested rollback plan. Our upgrade checklist covers this in full.

Prices start from the published tiers on our upgrade service page, with a range of $799–$2,999+ in USD after a free assessment, invoiced in USD, GBP, EUR or INR.

Larger jumps we have completed

Questions

Is Laravel 10 still supported?

No. Bug fixes ended on August 6, 2024 and security fixes ended on February 4, 2025, according to the Laravel release notes.

Do I have to adopt the slimmer Laravel 11 application structure?

No. Laravel's upgrade guide advises against migrating the structure of an upgraded Laravel 10 application, because Laravel 11 also supports the Laravel 10 layout. Leaving it alone keeps the upgrade smaller.

Can Laravel 10 run on a supported PHP version?

Yes. Laravel 10 supports PHP 8.1 to 8.3, and php.net gives PHP 8.3 security support until 31 December 2027. Moving PHP first removes one risk, but it doesn't patch the framework.

Planning your way off Laravel 10?

Tell us your PHP version, your packages and how much of the application has tests. We will recommend a route and quote it at a fixed price.

We reply within one business day (IST).