Service classes
A service holds a cohesive business operation outside HTTP concerns.
What it is
A service holds a cohesive business operation outside HTTP concerns.
When to use it
Use when the operation has meaningful rules or multiple writes.
Syntax
public function place(User $user, array $data): Order {}Example
namespace App\Services;
use App\Models\{Order, User};
use Illuminate\Support\Facades\DB;
class OrderService
{
public function place(User $user, array $data): Order
{
return DB::transaction(fn () => $user->orders()->create([
"reference" => $data["reference"],
"total_cents" => $data["total_cents"],
"status" => "pending",
]));
}
}Common mistakes
A one-write operation may not need a service or transaction; do not add layers to demonstrate patterns.