Quick answer: Laravel 13 is released and stable. It launched on March 17, 2026, and requires PHP 8.3 or higher, dropping support for PHP 8.2. It receives bug fixes until Q3 2027 and security fixes until March 17, 2028. According to the official upgrade guide, upgrading from Laravel 12 takes about 10 minutes for a typical app.

Laravel 13 is the current major release of Laravel and the version to consider for new projects. The Laravel team built it around two priorities: keeping breaking changes to a minimum and making AI a first-class part of the framework.

The second priority is reflected in the headline feature: a first-party Laravel AI SDK. The first is reflected in the upgrade guide, which is one of the shortest in recent years.

This guide answers the questions developers are searching for: which PHP version Laravel 13 requires, whether it's stable, what's new, what breaks, and how to upgrade from Laravel 12 step by step.

Key Takeaways

  • Laravel 13 requires PHP 8.3 to 8.5. PHP 8.2 is no longer supported, so upgrade PHP before upgrading Laravel.

  • It's stable and supported: bug fixes until Q3 2027 and security fixes until March 17, 2028.

  • Laravel 12 is now in its security-fixes-only period. Bug fixes ended on August 13, 2026, and security fixes end on February 24, 2027.

  • The biggest additions are the Laravel AI SDK and expanded PHP attribute support, alongside native vector search, JSON resources, and queue routing.

  • Most apps can upgrade in about 10 minutes. The main code change to check is the CSRF middleware rename to PreventRequestForgery. The old names still work as deprecated aliases.

Is Laravel 13 Stable?

Yes. Laravel 13 is a stable, production-ready release. It shipped on March 17, 2026, under Laravel's standard support policy, not as a beta or preview. It has been available for more than seven months.

The Laravel team states in the official release notes that much of its focus during this release cycle was on minimizing breaking changes. That's why most apps can upgrade without changing much code.

Stable doesn't mean every package you use is ready. Before upgrading a production app, check that your third-party packages allow laravel/framework ^13.0 in their composer.json. If a package doesn't, that package, rather than the framework itself, may be what holds you back.

Laravel 13 PHP Version Requirements

The minimum PHP version for Laravel 13 is 8.3. It supports PHP 8.3, 8.4, and 8.5. Laravel 12 supported PHP 8.2, but that version is no longer in Laravel 13's supported range.

Check your PHP version on every machine and server that runs your app:

php -v

If you're running PHP 8.2 or lower, upgrade PHP first. This includes your local development environment, CI pipeline, staging environment, and production servers. Tools such as Laravel Herd make switching PHP versions locally a one-click task.

Laravel 13 Support Policy and Release Dates

Laravel provides 18 months of bug fixes and two years of security fixes for each major release. Here's where Laravel 13 and Laravel 12 stand:

Version

PHP

Released

Bug fixes until

Security fixes until

Laravel 13

8.3–8.5

March 17, 2026

Q3 2027

March 17, 2028

Laravel 12

8.2–8.5

February 24, 2025

August 13, 2026

February 24, 2027

Source: Laravel 13 release notes, support policy table.

The practical takeaway is simple: if you're still using Laravel 12, you're no longer receiving bug fixes. You have until February 2027 before security patches stop, too. Given how small the upgrade is for many applications, there's little reason to delay.

Starting a new project? StackMivo generates complete Laravel 13 apps from a plain-English description, including models, migrations, authentication, and admin panels. You get code you own.

What's New in Laravel 13

Laravel AI SDK

The headline feature of Laravel 13 is the first-party Laravel AI SDK. According to the release notes, it provides a unified API for text generation, tool-calling agents, embeddings, audio, images, and vector-store integrations.

You can write your code once and switch AI providers through configuration. The AI SDK documentation lists providers including OpenAI, Anthropic, Gemini, Azure, Bedrock, Groq, xAI, DeepSeek, Mistral, and Ollama, depending on the feature.

Install it with Composer:

composer require laravel/ai

Prompting an agent takes one call:

use App\Ai\Agents\SalesCoach;

$response = SalesCoach::make()->prompt('Analyze this sales transcript...');

return (string) $response;

Images, audio, and embeddings follow a similar pattern:

use Laravel\Ai\Image;
use Laravel\Ai\Audio;
use Illuminate\Support\Str;

$image = Image::of('A donut sitting on the kitchen counter')->generate();

$audio = Audio::of('I love coding with Laravel.')->generate();

$embeddings = Str::of('Napa Valley has great wine.')->toEmbeddings();

For a hands-on walkthrough covering agents, tools, and structured output, read our Laravel 13 AI SDK guide. If you're comparing options, our Prism guide covers the community package many teams used before the official SDK.

Expanded PHP Attributes

Laravel 13 continues to expand first-party PHP attribute support across the framework. Notable additions include #[Middleware] and #[Authorize] for controllers, along with #[Tries], #[Backoff], #[Timeout], and #[FailOnTimeout] for queued jobs.

The release notes also describe additional attributes across Eloquent, events, notifications, validation, testing, and resource serialization.

Here's the official example:

use App\Models\Comment;
use App\Models\Post;
use Illuminate\Routing\Attributes\Controllers\Authorize;
use Illuminate\Routing\Attributes\Controllers\Middleware;

#[Middleware('auth')]
class CommentController
{
    #[Middleware('subscribed')]
    #[Authorize('create', [Comment::class, 'post'])]
    public function store(Post $post)
    {
        // ...
    }
}

Attributes are optional. Your existing configuration continues to work, so you can adopt them one file at a time.

Semantic and Vector Search

Laravel 13 adds native vector queries to the query builder, using PostgreSQL with pgvector:

$documents = DB::table('documents')
    ->whereVectorSimilarTo('embedding', 'Best wineries in Napa Valley')
    ->limit(10)
    ->get();

Combined with embeddings from the AI SDK, this provides a first-party path to semantic search and retrieval-augmented generation (RAG).

JSON Resources

Laravel now includes first-party JSON resources. They handle resource serialization, relationship inclusion, sparse fieldsets, links, and JSON response headers, so API-first applications no longer need a third-party package just to support the specification.

Queue Routing

You can now configure the default connection and queue for a job class in one central place:

Queue::route(ProcessPodcast::class, connection: 'redis', queue: 'podcasts');

New to queue connections, retries, and timeouts? Our guide to Laravel queues, jobs, and workers covers the basics.

Request Forgery Protection

The CSRF middleware is now called PreventRequestForgery and adds origin-aware request checks using the Sec-Fetch-Site header. This is also the main code change to review during the upgrade.

Cache::touch()

Cache::touch(...) extends the time to live (TTL) of an existing cache item without reading and re-storing its value.

Laravel 13 Breaking Changes

The Laravel 13 upgrade guide groups breaking changes by impact. Most applications only need to focus on the first group.

High impact:

  • Updating dependencies in composer.json

  • Updating the Laravel installer

  • Request forgery protection: VerifyCsrfToken is renamed to PreventRequestForgery

Medium impact:

  • Cache serializable_classes configuration now defaults to false

  • Database upsert operations with MySQL or MariaDB now require a non-empty uniqueBy

Low impact: The new Symfony PHP 8.5 polyfill, cache prefixes and session cookie names, collection model serialization, Container::call with nullable class defaults, domain route precedence, the JobAttempted and QueueBusy events, Manager extend callbacks, MySQL DELETE queries with joins, pagination Bootstrap view names, polymorphic pivot table names, session serialization, and Str factories resetting between tests.

Most low-impact changes affect less commonly used parts of the framework. Review them and investigate further if your app relies on the affected features.

How to Upgrade from Laravel 12 to Laravel 13 (Step by Step)

The official estimate is 10 minutes for a typical app. Here's the process.

Step 1: Upgrade PHP to 8.3 or higher

Laravel 13 won't install on PHP 8.2. Upgrade PHP locally, in CI, and on your servers first.

Step 2: Create a branch and run your tests

Start with a passing test suite on Laravel 12 so you can identify any new failures caused by the upgrade.

git checkout -b upgrade-laravel-13
php artisan test

Step 3: Update composer.json

Update the relevant dependencies:

"laravel/framework": "^13.0",
"laravel/boost": "^2.0",
"laravel/tinker": "^3.0",
"phpunit/phpunit": "^12.0",
"pestphp/pest": "^4.0"

Only change the packages you actually use. Then run:

composer update

If Composer reports a dependency conflict, a third-party package may not support Laravel 13 yet. Check whether a newer release is available.

Step 4: Update the Laravel installer

If you use the Laravel installer to create new apps, update it:

composer global update laravel/installer

If you use Laravel Herd's bundled installer, update Herd instead.

Step 5: Rename the CSRF middleware

Find direct references to VerifyCsrfToken or ValidateCsrfToken, often in tests or route definitions, and switch them to PreventRequestForgery:

use Illuminate\Foundation\Http\Middleware\PreventRequestForgery;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;

// Laravel 12
->withoutMiddleware([VerifyCsrfToken::class]);

// Laravel 13
->withoutMiddleware([PreventRequestForgery::class]);

The old names still work as deprecated aliases, but updating them now will help keep your code current.

Step 6: Check the medium-impact changes

  • Cache: If your app stores PHP objects in the cache, list those classes in serializable_classes in config/cache.php. Otherwise, consider storing arrays instead of objects, as our Laravel Redis cache playbook recommends.

  • Upserts on MySQL or MariaDB: Make sure every upsert call passes a non-empty uniqueBy argument. Otherwise, Laravel will throw an InvalidArgumentException.

  • Sessions: The new app skeleton sets the session serialization option to json. If you sync config/session.php and change the setting from php to json, active users will be logged out. Keep php for a seamless upgrade, or switch to json if you're comfortable asking users to sign in again.

  • array_first() and array_last(): Laravel 13 adds the symfony/polyfill-php85 package, which defines these global functions on PHP versions below 8.5. If you use laravel/helpers or custom helpers with the same names, switch to Arr::first() and Arr::last().

Step 7: Run tests, then deploy

Run your full test suite, verify the key user flows in staging, and then deploy. A zero-downtime deployment makes it easier to roll back quickly if something slips through.

Faster options: Laravel Boost and Shift

You don't have to complete every step manually:

  • Laravel Boost: With Boost ^2.0 installed, run the /upgrade-laravel-v13 slash command in Claude Code, Cursor, OpenCode, Gemini, or VS Code. Your AI agent can then guide you through the upgrade. See our Laravel Boost guide for setup instructions.

  • Shift: A community-maintained service that automates Laravel upgrades.

Tarun runs a three-person agency in Ahmedabad with eight client apps on Laravel 12. When bug-fix support ended in August, he blocked out a Friday afternoon. The first app took 25 minutes, most of which was spent upgrading PHP on the server. The remaining apps took about 10 minutes each, and the only code change across all eight was the CSRF middleware rename in two test files.

Tarun is an illustrative composite based on common upgrade scenarios.

Start a New Laravel 13 Project with StackMivo

If you're starting fresh rather than upgrading, you can skip much of the initial setup. StackMivo generates new projects on Laravel 13 by default.

  1. Describe your product in plain English. For example: "A SaaS app where companies post jobs, candidates apply, and hiring managers get an AI-ranked shortlist."

  2. Get a full Laravel app, with models, migrations, relationships, controllers, policies, and authentication for your user roles.

  3. Preview it live and test the main flows before writing code.

  4. Refine it with follow-up prompts, such as adding AI-powered résumé scoring with the Laravel AI SDK.

  5. Download the code. It's standard Laravel 13, with no proprietary runtime and nothing tying it to StackMivo.

Build on Laravel 13 today. Describe your app and get a working Laravel codebase in minutes. Start free with StackMivo →

Frequently Asked Questions

What PHP version does Laravel 13 require?

Laravel 13 requires PHP 8.3 or higher and supports PHP 8.3, 8.4, and 8.5. PHP 8.2 is not supported.

Is Laravel 13 stable for production?

Yes. Laravel 13 has been stable since March 17, 2026, with bug fixes until Q3 2027 and security fixes until March 17, 2028. Check that your third-party packages support it before upgrading.

When was Laravel 13 released?

Laravel 13 was released on March 17, 2026.

How long does it take to upgrade from Laravel 12 to Laravel 13?

The official upgrade guide estimates about 10 minutes for a typical app. Upgrading PHP to 8.3 and resolving third-party package compatibility issues can add more time.

Does Laravel 13 have breaking changes?

Yes, but relatively few. The main high-impact change is the CSRF middleware rename from VerifyCsrfToken to PreventRequestForgery. The old names still work as deprecated aliases. Most other changes affect less commonly used framework features.

What is the Laravel AI SDK?

The Laravel AI SDK is a first-party package introduced with Laravel 13. It provides a unified API for text generation, tool-calling agents, embeddings, audio, images, and vector stores across providers such as OpenAI, Anthropic, and Gemini.

The Bottom Line

Laravel 13 is stable, supported through 2028, and designed to make major upgrades easier. Upgrade your servers to PHP 8.3 or higher, update composer.json, review the CSRF middleware and session settings, and run your tests.

If you're using Laravel 12, bug fixes have already stopped, so now is a good time to plan the move. If you're starting something new, begin with Laravel 13 and use the AI SDK from day one.

Generate your first Laravel 13 app with StackMivo →