use Illuminate\Pipeline\Pipeline;
$result = app(Pipeline::class)
->send($order)
->through([
ValidateOrder::class,
CalculateTotal::class,
ApplyDiscount::class,
ProcessPayment::class,
])
->thenReturn();
// Каждый шаг
class CalculateTotal {
public function handle(Order $order, Closure $next): mixed {
$order->total = $order->items->sum('price');
return $next($order);
}
}Pipeline = Chain of Responsibility. Laravel middleware работают именно так. Полезно для обработки заказов, ETL, конвейеров трансформации.