Laravel 13 drops on March 17, 2026 — and it's one of the most developer-friendly releases yet. No architectural rewrites, no migration nightmares. Two headline features that clean up patterns you write every day, a PHP version bump, and several well-considered quality-of-life improvements across the framework.
Here's every confirmed feature with before/after code examples.
Laravel 13 — Feature Summary
| Feature | Type | Breaking? |
|---|---|---|
| PHP 8.3 minimum requirement | Requirement | Runtime only |
| PHP Attributes (15+ locations) | New | No — optional |
Cache::touch() | New | No |
| Reverb database driver | New | No |
| Passkey authentication | New | No |
| Laravel AI SDK stable | New | No |
| Teams support in starter kits | New | No |
| MySQL DELETE…JOIN with ORDER BY / LIMIT | Improved | No |
| HTTP pool concurrency default = 2 | Improved | No |
| Symfony 7.4 and 8.0 support | Improved | No |
1. PHP 8.3 Minimum Requirement
Laravel 13 drops PHP 8.2 and requires PHP 8.3 as the minimum. This is the only change that affects your infrastructure — everything else is application-level and non-breaking.
PHP 8.3 brings typed class constants, improved json_validate(), readonly property improvements, and JIT optimizations. Laravel 13 removes old polyfills and backcompat code that existed purely to support PHP 8.2, making the framework leaner and faster.
php -v. Laravel 12 stays supported until August 2026 — no rush.
2. PHP Attributes — The Headline Feature
This is the biggest developer experience change in Laravel 13. Instead of cluttering your models, jobs, and commands with a wall of class property declarations, you can now use native PHP #[Attribute] syntax. Fully optional, fully backward compatible — your existing code works exactly as before.
Models
Before — Laravel 12Jobs
Before — Laravel 12Commands
Before — Laravel 123. Cache::touch() — Extend TTL Without Re-Fetching
Before Laravel 13, extending a cache item's expiry meant fetching the full value, then re-storing it — two network round trips and full payload transfer just to update a timestamp.
Before — Laravel 12 (inefficient)Under the hood: Redis gets a single EXPIRE command. Memcached uses native TOUCH. Database driver runs a single UPDATE. No value retrieval, no payload transfer, no wasted bandwidth.
Where this matters most: sliding session expiration, active subscription windows, hot dashboard data, API rate limit windows — anything where you extend TTL on every request at scale.
4. Reverb Database Driver — Real-Time Without Redis
Previously, scaling Laravel Reverb horizontally required Redis as a message broker. Laravel 13 introduces a database driver — horizontal scaling using your existing MySQL or PostgreSQL database instead.
config/broadcasting.php5. Passkey Authentication
Passkeys — WebAuthn-based passwordless authentication — are now integrated into Laravel's starter kits and Fortify. Users authenticate with biometrics (Face ID, fingerprint) or hardware keys instead of passwords. Available out of the box on new Laravel 13 applications, no third-party packages required.
6. Laravel AI SDK — Out of Beta
The Laravel AI SDK moves from beta to stable on March 17, alongside Laravel 13. It provides a first-class interface for integrating LLMs (OpenAI, Anthropic, and others) into Laravel applications — with proper queue support, error handling, and Laravel-native conventions.
7. Teams Support Returns to Starter Kits
Jetstream had Teams — the new starter kits didn't. Laravel 13 brings team-based multi-tenancy back to the official starter kits, with a cleaner implementation than Jetstream's version.
8. Other Improvements
MySQL DELETE…JOIN with ORDER BY / LIMIT
Laravel's MySQL grammar now compiles full DELETE…JOIN queries including ORDER BY and LIMIT clauses. Previously these were silently ignored, forcing developers to write raw SQL for complex delete operations.
HTTP Pool Concurrency Default = 2
Previously, Http::pool() left concurrency at null, causing pooled requests to run serially — a silent footgun. Laravel 13 defaults concurrency to 2, so pooled requests are actually concurrent out of the box.
Symfony 7.4 and 8.0 Support
Laravel 13 supports Symfony 7.4 and 8.0, keeping the dependency chain modern and future-proof.
How to Upgrade to Laravel 13
1. Update composer.jsoncomposer update or Composer will fail immediately. Always test on staging before upgrading production.
You can also use Laravel Shift for automated upgrades.
Frequently Asked Questions
When is Laravel 13 released?
March 17, 2026 — announced by Taylor Otwell at Laracon EU 2026.
Does Laravel 13 have breaking changes?
No breaking changes to application code. The only requirement change is PHP 8.3 minimum. All new features including PHP Attributes are optional and fully backward compatible.
Should I upgrade immediately?
No rush. Laravel 12 receives bug fixes until August 2026 and security fixes until February 2027. Test on staging, upgrade production when ready.
Will my packages break on Laravel 13?
Most major packages — Livewire, Inertia, Filament, Spatie — will have Laravel 13 support ready on or shortly after launch. Check each package's GitHub releases before upgrading.