Laravel and PHP development
Laravel upgrade service: old versions to Laravel 13 and PHP 8
My Laravel upgrade service takes apps stuck on an older release, anything from Laravel 5.x to 12, up to Laravel 13 and a supported PHP 8 version. I upgrade one major version at a time, fix what breaks in your code and your packages, and add tests around the flows that make you money before anything reaches production. You get a current, supported app without a rewrite.
What’s included
- Upgrade audit: Laravel and PHP versions, every Composer package, server setup and test coverage
- A written upgrade path with version hops, blockers and a realistic estimate
- Laravel version upgrade one major at a time, following each official upgrade guide
- Replacing abandoned or incompatible packages with maintained alternatives
- PHP upgrade on the server, plus code fixes for PHP 8.x deprecations and removed functions
- Smoke and feature tests on critical flows: login, checkout, invoicing, reports
- Static analysis with PHPStan or Larastan and automated fixes with Rector where safe
- Staging deployment, production cutover and a tested rollback plan
- Notes on what changed, new config values and anything left for later
What my Laravel upgrade service covers, and who it is for
This Laravel upgrade service is for businesses whose app works but sits on a Laravel or PHP version that no longer gets fixes. Often the original developer has moved on, the host has warned about PHP end of life, a security scan has flagged old packages, or a new feature needs a package that will not install on the old version.
It is not a rebuild. I keep your code, your database and your features, and change what each new version requires. If the code is in such poor shape that upgrading would touch almost every file, I will say so and explain the trade-off before you spend money. For apps that are not on Laravel at all, a CodeIgniter to Laravel migration is the right starting point instead.
Why upgrade: Laravel and PHP support dates in 2026
Laravel gives each major release 18 months of bug fixes and two years of security fixes, and ships a new major roughly every year in the first quarter. As of October 2026 the support picture looks like this:
- Laravel 13, released March 17, 2026, is current. It supports PHP 8.3 to 8.5, with security fixes until March 17, 2028
- Laravel 12 lost bug fixes on August 13, 2026 and gets security fixes only until February 24, 2027
- Laravel 11 stopped receiving security fixes on March 12, 2026, and Laravel 10 and older are well past end of life
- PHP 8.1 stopped getting security fixes at the end of 2025, and PHP 8.2 follows at the end of 2026
What breaks in a Laravel version upgrade
Laravel's own upgrade guides are good, and the Laravel team describes the move from 12 to 13 as a light one. The trouble is the older hops and the packages around the framework. These are the issues I plan for:
- Laravel 8: model factories became classes, so old $factory->define() files need rewriting or the legacy factories package
- Laravel 9: SwiftMailer was replaced by Symfony Mailer and Flysystem moved to version 3, which changes custom mail and storage code
- Laravel 10 and 11: minimum PHP rose to 8.1 and then 8.2, and Laravel 11 changed column modifications so every attribute must be restated
- Laravel 12: Carbon 2 support was removed, and Carbon 3's diffIn methods can return floats and negative values, which quietly breaks date math
- Laravel 13: PHP 8.3 is the minimum, and CSRF protection is formalized as the PreventRequestForgery middleware
- Packages: abandoned admin panels, old CORS or JWT packages, and anything pinned to an old illuminate/* version that blocks Composer
PHP 7 to 8 migration and legacy PHP upgrade work
Many Laravel upgrades are really PHP upgrades in disguise, and some apps are not on Laravel at all. My PHP 8 upgrade service covers both. A PHP 7 to 8 migration usually fails on a handful of known changes: string-to-number comparisons that behave differently since PHP 8.0, undefined array keys now raising warnings, each() and create_function() removed, null passed to internal string functions deprecated in 8.1, dynamic properties deprecated in 8.2, and implicitly nullable parameters deprecated in 8.4.
A PHP 5.6 to 8 migration is a bigger job. The old mysql_* functions are gone entirely, so database code moves to PDO or mysqli with prepared statements, and that is also a chance to close SQL injection holes. For any legacy PHP upgrade I run PHPCompatibility checks and Rector first to find and fix the mechanical issues, then test the business flows by hand. I keep a PHP 8 upgrade checklist if you want to see the detail.
Why hire me for a Laravel version upgrade
I work in Laravel and PHP 8 every day and have run production apps on Laravel 8 through 12, so the differences between versions are familiar ground, not something I read up on during your project. I know the packages that tend to block upgrades and the config changes that do not show up as errors until a user hits them.
You deal with one engineer from audit to go-live. I work remotely from India with clients in different time zones, and we agree on update times at the start. If you want the steps for the most recent hop, my Laravel 13 upgrade guide covers them, and ongoing care after the upgrade is available through PHP and Laravel maintenance.
What affects the cost and timeline of a Laravel upgrade
Every upgrade gets a fixed quote after a short call or a written brief and a look at composer.json. The main drivers are how many major versions you need to cross, how many third-party packages you use and whether they are maintained, whether tests exist, how much custom code touches the framework's internals, and whether the server's PHP version can be changed easily or needs a new server.
Going from Laravel 12 to 13 on a well-kept app is often a short job. Going from Laravel 5.x on PHP 7.x to Laravel 13 is a project, but still usually far cheaper than a rebuild.
How the work runs
Audit the app and its dependencies
I check Laravel and PHP versions, run composer outdated and composer why-not against the target, review the server and note which packages block the path.
Build a safety net
Before changing versions I add tests around the flows that matter most and set up a staging copy with a recent, anonymized database.
Hop one major version at a time
Each hop follows the official upgrade guide, with package updates, code fixes and a full test run, committed separately so any step can be reviewed or reverted.
Upgrade PHP and the server
I move the app to a supported PHP version, update extensions, queue workers, cron and OPcache settings, and fix any remaining deprecations.
Release with a rollback plan
We deploy at a quiet time with the previous release and database backup ready to restore, then I watch logs and queues closely for the following days.
Tools and technologies
- Laravel 8 to 13
- PHP 7.4 to 8.5
- Composer
- Rector
- PHPStan and Larastan
- PHPCompatibility
- Pest and PHPUnit
- Carbon 3
- MySQL
- Git
- Linux VPS, cPanel and WHM
About past work
Client work for this service is private, so it is not shown here. On a call I can walk you through comparable projects, what was done and how it turned out. The case studies show how I approach engineering problems in general.
Questions
Can I skip Laravel versions, for example from 8 straight to 13?
Not in one jump. I upgrade one major version at a time because each official guide assumes the previous one is done, but the hops can happen in a single project and you only see the final result. Skipping steps is how subtle breakages slip through.
Will my packages break when I upgrade Laravel?
Some probably will. Most popular packages support new Laravel releases quickly, but abandoned ones block Composer, and I replace those with maintained alternatives or small pieces of your own code.
Do you use Laravel Shift?
Shift is a good tool for the mechanical part of an upgrade, and I can use it if you prefer. Either way, the important work is reviewing every change, fixing what tools miss and testing the business flows.
How long does a Laravel upgrade take?
One version on a tidy app can take a few days; several versions plus a PHP upgrade can take a few weeks. You get an estimate per hop after the audit.
Do I need to upgrade PHP on my server too?
Usually, yes. Laravel 13 needs PHP 8.3 or newer, so older servers must be upgraded or replaced. I handle that, including extensions, queue workers and cron.
Why upgrade Laravel if the app works fine?
Because unsupported versions stop getting security fixes, and every month the jump gets bigger. Upgrading on your schedule is far cheaper than doing it in a hurry after a host forces a PHP change or a vulnerability is published.
Should I upgrade or rebuild my Laravel app?
Upgrade in almost every case: it keeps working features and years of fixed edge cases. A rebuild only makes sense when the business has changed so much that the old data model and screens no longer fit.
Can you upgrade Laravel to 13 without downtime?
Usually with only a brief maintenance window, often none. The upgraded code is tested on staging first, and the release itself is a normal deployment with a rollback ready.
Related services
Further reading
Tell me what you are building.
A few lines about the project, who will use it and when it needs to ship are enough to start. You get a straight answer on whether laravel upgrades is the right fit, and what it would take.
- Status
- Available for new projects
- Reply time
- I reply within an hour during working hours.
- Working hours
- 9 AM to 9 PM IST (UTC+5:30)
- Languages
- English, Hindi, Gujarati
Prefer email? Write to jaygajjar.dev@gmail.com.