Mahmoud Al-HabashOpen to new projects
  • WorkWork
  • ServicesServices
  • LabLab
  • WritingWriting
  • ContactContact
Amman--:--عربي
Writing/Laravel

Laravel Action Classes: Single Responsibility

Organize business logic into single-purpose action classes.

16 January 20261 min readLaravelاقرأ بالعربية

On this page

  1. Create Action Class
  2. Use in Controller
  3. Benefits

Single responsibility with actions:

Create Action Class

php
class CreateOrderAction
{
    public function execute(array $data): Order
    {
        return DB::transaction(function () use ($data) {
            $order = Order::create($data);
            $order->items()->createMany($data['items']);
            event(new OrderCreated($order));
            return $order;
        });
    }
}

Use in Controller

php
public function store(Request $request, CreateOrderAction $action)
{
    $order = $action->execute($request->validated());
    return redirect()->route('orders.show', $order);
}

Benefits

- Reusable across controllers
- Easy to test
- Clear responsibility
- Simpler controllers
All articles

Keep reading

  • Laravel Action Classes Pattern16 January 20261 min read
  • Laravel API Rate Limiting16 January 20261 min read
  • Laravel API Resources Transformation16 January 20261 min read