Laravel 13: New Features and Upgrade Guide from Laravel 12
Laravel 13 shipped on March 17, 2026 and, against all odds for a major release, it arrives with zero breaking changes: most applications complete the upgrade from Laravel 12 in about ten minutes. A stable AI SDK, native passkeys, Redis-free Reverb and PHP Attributes in Eloquent are the features that define this release, the first of the framework's AI era.
What Laravel 13 Is and Why It Matters
Laravel 13 is the yearly major release of the most popular PHP framework, and the first one presented openly as an AI-era version. It is not an API revolution but a consolidation: the framework now ships capabilities that used to require third-party packages, and it does so without breaking anything you already have in production.
The Laracon EU 2026 Announcement
Taylor Otwell announced Laravel 13 at Laracon EU 2026, held in Amsterdam in March 2026, keeping the tradition of a yearly major release. At the same event, NativePHP was announced as free, a relevant move if you want to build desktop apps with Laravel.
A Major Release with Zero Breaking Changes
The most surprising thing about Laravel 13 is that it introduces no breaking changes against Laravel 12: the only hard requirement is PHP 8.3 or higher. In practice, most applications complete the upgrade in about ten minutes, almost unheard of for a major version.
Read also
Main New Features in Laravel 13
These are the five features you will notice the most after upgrading, with examples of how to use them.
First-Party AI SDK, Production-Stable
The Laravel AI SDK, previously an evolving package, becomes first-party and production-stable, with native OpenAI and Anthropic integration. Laravel officially enters the AI era: you can generate text, structure responses and build agents from the framework itself, without gluing third-party SDKs together.
Native Passkeys: Passwordless Login with WebAuthn
Laravel 13 ships native passkeys for passwordless authentication based on WebAuthn, integrated with the authentication system and Fortify. The typical flow uses a credential anchored to the user's device (biometrics or PIN) instead of a password, and the framework handles registration, verification and the signature challenge. A conceptual example of the flow:
// registration: the client generates the key pair and stores the public credential
$options = Passkey::registerOptions($user);
// return $options to the browser to call navigator.credentials.create()
// verification: validates the signature and authenticates the user
Passkey::verify($user, $request->input('credential'));Reverb with a Database Driver: No Redis Needed
Reverb, Laravel's WebSocket server, gains a database driver: MySQL or PostgreSQL manage the state of channels and connections, removing the Redis dependency in many projects. Configuration is as simple as changing the driver in the Reverb config file:
// config/reverb.php
'driver' => env('REVERB_DRIVER', 'database'),PHP Attributes in Eloquent
Eloquent now lets you configure models with PHP Attributes declaratively, instead of magic properties and methods. The result is more readable models, with configuration sitting next to the class definition:
use Illuminate\Database\Eloquent\Attributes\Table;
use Illuminate\Database\Eloquent\Attributes\Fillable;
#[Table('posts')]
#[Fillable(['title', 'body'])]
class Post extends Model
{
// ...
}Cache::touch() and Performance Improvements
Cache::touch() renews the expiration of an existing key without rewriting its value: perfect for extending the life of hot caches in long sessions or data carousels. It joins general core performance improvements, with special attention to reducing queries in common operations.
// renews the key TTL without regenerating the value
Cache::touch('home:feed');Requirements: PHP 8.3 as the Minimum
The only hard requirement of Laravel 13 is PHP 8.3 or higher. If your server is still on PHP 8.2, the framework upgrade will not work until you raise the interpreter version: this is the step that can take the most real time, and it is worth doing before touching Composer.
Upgrade Guide from Laravel 12 to Laravel 13
The upgrade is done with Composer and verified with a short checklist. These are the steps most teams follow.
Updating Dependencies with Composer
First, raise the framework to the 13.x branch with all its dependencies, then run the basic checks:
composer require laravel/framework:"^13.0" --with-all-dependencies
# check the version and the app state
php artisan aboutPost-Upgrade Checklist and Common Errors
After upgrading, go through this checklist: clear the config and route caches (php artisan optimize:clear), run the full test suite, review that your .env has no obsolete keys, and confirm in php artisan about that the PHP and framework versions are the expected ones. The most common errors are packages that still declare ^12.0 compatibility (update them to their 13.x versions) and missing PHP extensions on the server; the Composer log usually points out both.
Is It Worth Upgrading in 2026?
If your project is on Laravel 12 and meets the PHP 8.3 requirement, the short answer is yes: zero breaking changes, ten minutes of work, and access to features like the AI SDK, passkeys and Redis-free Reverb. For new projects, Laravel 13 should be the default choice in 2026. The only reason to wait would be dependencies that do not support the 13.x branch yet.
Conclusion
Laravel 13 proves that a major release does not have to be scary: with zero breaking changes, PHP 8.3 as the only requirement, and features centered on AI and modern authentication, it is the cheapest upgrade in the framework's recent history. If you use Reverb or plan passwordless login, the reasons pile up. Keep reading the blog for more Laravel guides, from Docker environments with Sail to WebSockets with Reverb.


