Events & Listeners
Decouple logic with event-driven architecture
Events decouple your code. When something happens, fire an event. Listeners handle the side effects.
A user places an order. This triggers an event.
Controller
OrderController::store()
OrderPlaced
carries Order data
SendConfirmation
UpdateInventory
NotifyWarehouse
PHP
public function store(Request $request) {
$order = Order::create($request->validated());
OrderPlaced::dispatch($order);
return redirect('/orders/' . $order->id);
}