Laravel 11.23: Mastering the New Blade Helpers, Defer, and Query Builder Methods
Overview
Laravel introduces a significant suite of quality-of-life improvements designed to streamline developer workflows and enhance application performance. This release focuses on reducing boilerplate in Blade templates, expanding PHP BackedEnums support in authorization, and introducing the much-anticipated defer helper for background task execution.
Prerequisites
To follow this guide, you should be comfortable with PHP 8.2+, have a basic understanding of Laravel's Laravel Query Builder and Blade templating engine, and understand the concept of Laravel Gates.
Key Libraries & Tools
- Laravel 11.23: The core framework update featuring these new utilities.
- Livewire: Often used in conjunction with these helpers for reactive frontends.
- Eloquent: Laravel's ORM which receives mirrored methods in the query builder.
Code Walkthrough
The Blade when Helper
Before this release, conditionally adding attributes in Blade felt clunky. You either used ternary operators with empty strings or wrapped elements in @if blocks. The new when helper cleans this up significantly.
<div {{ when($shouldPoll, 'wire:poll') }}>
<!-- Content -->
</div>
Laravel only renders the attribute if $shouldPoll evaluates to true, removing the need for an explicit "else" case or empty strings.
Database & Collection Enhancements
Laravel brings consistency to the Laravel Query Builder and Collections by porting popular Eloquent methods. You can now use firstOrFail directly on a DB table query.
# Using Query Builder
$user = DB::table('users')->where('email', '[email protected]')->firstOrFail();
# Using Collections
$users = User::all();
$user = $users->findOrFail(200); // Throws ModelNotFoundException if missing
Deferring Heavy Tasks
One of the most powerful additions is the defer function. It allows you to send a response to the user immediately while continuing to execute a task in the background without setting up a full queue system.
public function store()
{
// Logic...
defer(fn () => Analytics::track($data));
return response()->json(['message' => 'Success']);
}
Syntax Notes
- Gate Enums: You can now pass PHP BackedEnums instances directly to
Gate::allows(Permission::Edit)instead of callingPermission::Edit->value. - Validation: The
confirmedrule now accepts a custom field name:confirmed:custom_password_field.
Practical Examples
- Image Handling: Use
min_ratioandmax_ratiovalidation rules to prevent users from uploading ultra-wide or ultra-tall images that break your UI layout. - User Experience: Use
deferfor sending webhooks or tracking analytics where the user shouldn't wait for the third-party API response to see their dashboard.
Tips & Gotchas
- Deferred execution: Remember that
deferstill consumes your web server's resources. For extremely long-running tasks, a dedicated Redis queue remains the best practice. - Query Builder:
firstOrFailon the query builder returns a genericstdClassobject, not an Eloquent model, though it still throws theModelNotFoundException.
- Blade
- 15%· products
- Laravel
- 15%· products
- Laravel Query Builder
- 15%· products
- PHP BackedEnums
- 15%· products
- Eloquent
- 8%· products
- Other topics
- 31%

When Helper, Find Or Fail, Defer & more in Laravel 11.23
WatchLaravel // 6:29
The official YouTube channel of Laravel, the clean stack for Artisans and agents. We will update you on what's new in the world of Laravel, from the framework to our products Cloud, Forge, and Nightwatch.