Laravel 12: What Changed and Why It Matters
Laravel 12 arrived without the fanfare of previous major releases — and that's a feature, not a bug. The framework has matured to the point where version bumps are about refinement and ecosystem alignment rather than architectural overhauls. Here's what actually changed and what you need to do about it.
Minimum PHP Version: 8.2+
Laravel 12 drops support for PHP 8.1 and requires PHP 8.2 as a minimum. This brings access to readonly classes, DNF types, and improvements to fibers. If you're on PHP 8.1, upgrade your server before upgrading Laravel. Ubuntu 22.04 and 24.04 both support PHP 8.2+ via the Ondřej PPA.
Updated Starter Kits
Laravel 12 ships with redesigned starter kits built on React, Vue, or Livewire (your choice), with Shadcn/ui components for the React and Vue flavours. The Breeze and Jetstream packages have been reworked to use these new kits.
If you're starting a new project, the new starter kits are a solid foundation. For existing projects, the starter kits are optional — you don't need to adopt them to benefit from the framework upgrades.
Dependency Updates
Laravel 12 bumps several core dependency minimums: Carbon 3, Symfony 7, and Doctrine DBAL 4. If your project uses these packages directly (or has packages that depend on them), check compatibility before upgrading.
The Carbon 3 upgrade is the most likely to cause issues in existing code — there are some breaking changes in date formatting and comparison methods. Run your test suite after upgrading and check any code that does complex date manipulation.
Queue and Job Improvements
Laravel 12 includes improvements to the queue system: better job batching performance, improved handling of failed jobs, and new methods for inspecting queue state. If you rely heavily on queued jobs (as we do in water vending token dispatch and M-Pesa callback processing), the reliability improvements are worth the upgrade.
Upgrading from Laravel 11
The upgrade path from Laravel 11 to 12 is straightforward for most applications. Update composer.json to require laravel/framework:^12.0, run composer update, and check the upgrade guide for any breaking changes specific to your code.
The Laravel upgrade guide covers every breaking change with migration instructions. Read it fully before upgrading a production application. Test in staging first.
Need software built?
Tell us what you need. We respond within 24 hours with a realistic quote.