تسمح لك دالة tap() بتنفيذ عمليات على كائن ثم إرجاع نفس الكائن:
بدون tap()
$user = User::create($request->validated());
$user->assignRole('member');
$user->sendWelcomeEmail();
return $user;
مع tap()
return tap(User::create($request->validated()), function ($user) {
$user->assignRole('member');
$user->sendWelcomeEmail();
});
باستخدام Arrow Functions
return tap(User::create($request->validated()))
->assignRole('member')
->sendWelcomeEmail();
هذا مفيد بشكل خاص عندما تريد تحديث نموذج وإرجاعه في سطر واحد:
return tap($user)->update(['last_login' => now()]);