The tap() Helper for Fluent Code

Discover how the tap() helper function can make your code more readable and elegant when you need to return an object after performing operations on it.

1 min readLaravelاقرأ بالعربية

The tap() helper allows you to perform operations on an object and return the object itself:

Without tap()

$user = User::create($request->validated());
$user->assignRole('member');
$user->sendWelcomeEmail();
return $user;

With tap()

return tap(User::create($request->validated()), function ($user) {
    $user->assignRole('member');
    $user->sendWelcomeEmail();
});

Even Shorter with Arrow Functions

return tap(User::create($request->validated()))
    ->assignRole('member')
    ->sendWelcomeEmail();

This is especially useful when you want to update and return a model in one line:

return tap($user)->update(['last_login' => now()]);
All articles

Keep reading