Laravel 12.18.0 Update
June 17, 2025Laravel 12.18.0 Update
The Laravel team released version 12.18.0 with several cool updates:
- String encrypt() & decrypt() helpers are now available on
Stringableinstances. - New
--batchedoption forphp artisan make:jobto generate batchable jobs. UsePolicyattribute to explicitly specify a model’s policy.- Per-request HTTP client exception truncation control.
🔐 1. String encrypt/decrypt helpers
Instead of doing this:
// Before
$encryptedToken = str('secret-api-token')
->pipe(fn(Stringable $str) => encrypt($str->value()))
->prepend('encrypted:')
->append(':end');
// After
$encryptedToken = str('secret-api-token')
->encrypt()
->prepend('encrypted:')
->append(':end');
It’s much cleaner and fluent now.
⚙️ 2. Batchable job option
Needed a batchable job? Now you can just run:
php artisan make:job ProcessPodcast --batched
The generated class looks like this:
namespace App\Jobs;
use Illuminate\Bus\Batchable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Queue\Queueable;
class ProcessPodcast implements ShouldQueue
{
use Batchable, Queueable;
public function handle(): void
{
if ($this->batch()->cancelled()) {
return;
}
// your processing logic here...
}
}
🏷️ 3. UsePolicy attribute
Now you can explicitly assign a policy:
#[UsePolicy(PostPolicy::class)]
class Post extends Model {}
No need to rely solely on convention.
🌐 4. HTTP client truncate exception limit
Control exactly how much of the exception response gets truncated per-call:
Http::truncateExceptionsAt(240)->post(/* ... */)
That’s the major highlights from Laravel 12.18.0. Check out the full changelog or GitHub diff to explore the rest.
Blog
Jul 20, 2025
🔧 1. Laravel 12.0 – Starter Kits & Core Changes Version 12.0 introduced modern starter kits for React, Vue, Livewire, plus integratio...
Jul 20, 2025
A detailed, example-rich guide to avoid slowdowns in Laravel apps by optimizing data retrieval and employing indexing smartly. 1. 🧠 Fetch Only...
Jul 20, 2025
Laravel Context is one of the most powerful new features in Laravel 12. It allows you to attach contextual data (like user ID, IP address, request pat...
Jul 24, 2025
🧠 What is Dynamic Import? Dynamic import allows you to load JavaScript modules at runtime—only when needed. This approach is fantastic for r...
Jul 07, 2025
Laravel 12.19: Elegant Query Builders with PHP Attributes In Laravel 12.19, you can now use the #[UseEloquentBuilder] PHP attribute to assign a cus...
Jul 01, 2025
🚫 Stop Copy-Pasting Code! Ever duplicated slug logic or logging across multiple models? Laravel's Traits got your back. 1. What’s a Trait?...