What We Know About Laravel 13

Last updated on February 21st, 2026 by Paul Redmond

Laravel 13 is the next major release of the Laravel framework, scheduled for March 2026. This release will require PHP 8.3 as the minimum version and will follow Laravel's standard support cycle with bug fixes through Q3 2027 and security updates through Q1 2028.

New Features

Laravel 13 features will be added to this post as they are announced.

PHP Attributes Support

PR #58578 introduces PHP 8 Attributes as an alternative to class properties for configuring Laravel components. This is a non-breaking change — existing property-based configuration continues to work.

New attributes replace the need to define $table, $hidden, $fillable, and other properties on your models:

#[Table('users', key: 'user_id', keyType: 'string', incrementing: false)]
#[Hidden(['password'])]
#[Fillable(['name', 'email'])]
class User extends Model {}

Available model attributes:

  • #[Appends]
  • #[Connection]
  • #[Fillable]
  • #[Guarded]
  • #[Hidden]
  • #[Table]
  • #[Touches]
  • #[Unguarded]
  • #[Visible]

Queue Jobs

Queue configuration can now be defined directly on the job class:

#[Connection('redis')]
#[Queue('podcasts')]
#[Tries(3)]
#[Timeout(120)]
class ProcessPodcast implements ShouldQueue {}

Available queue attributes:

  • #[Backoff]
  • #[Connection]
  • #[FailOnTimeout]
  • #[MaxExceptions]
  • #[Queue]
  • #[Timeout]
  • #[Tries]
  • #[UniqueFor]

These attributes also apply to listeners, notifications, mailables, and broadcast events.

Console Commands

Commands can define their signature and description with attributes instead of class properties:

#[Signature('mail:send {user} {--queue}')]  
#[Description('Send a marketing email to a user')]
class SendMailCommand extends Command {}

Other Components

Attributes are also available for form requests (#[RedirectTo], #[StopOnFirstFailure]), API resources (#[Collects], #[PreserveKeys]), factories (#[UseModel]), and test seeders (#[Seed], #[Seeder]).

Cache::touch()

PR #55954 adds a Cache::touch() method that extends a cached item's TTL without fetching or re-storing the value:

// Extend by seconds
Cache::touch('user_session:123', 3600);
// Extend with a DateTime
Cache::touch('analytics_data', now()->addHours(6));
// Extend indefinitely
Cache::touch('report_cache', null);

The method returns true on success and false if the key doesn't exist. It's implemented across all cache drivers: Array, APC, Database, DynamoDB, File, Memcached, Memoized, Null, and Redis.

PHP Version Requirements

Laravel 13 will require PHP 8.3 as the minimum version. This represents an increase from Laravel 12's PHP 8.2 minimum requirement.

Support Timeline

Following Laravel's established support policy, Laravel 13 will receive bugfixes until Q3 2027 and security updates until Q1 2028:

Version PHP () Release Bug Fixes Until Security Fixes Until
10 8.1 - 8.3 February 14th, 2023 August 6th, 2024 February 4th, 2025
11 8.2 - 8.4 March 12th, 2024 September 3rd, 2025 March 12th, 2026
12 8.2 - 8.5 February 24th, 2025 August 13th, 2026 February 24th, 2027
13 8.3 - 8.5 Q1 2026 Q3 2027 Q1 2028

Laravel 12, released February 24, 2025, will continue receiving:

  • Bug fixes until August 13, 2026
  • Security fixes until February 24, 2027

Upgrading to Laravel 13

If you want to keep your projects up to date with the latest versions, check out Laravel Shift. Shift will open a PR with nice, atomic commits for you to review in just a few clicks.