public function decide(Request $request, Order $order) { $cancellation = $order->getCancellation(); $this->authorize('decide', $cancellation); if (is_null($cancellation)) { return $this->error(OrderCancellation::CAN_NOT_FIND); } $approved = $request->input('approved') ?: false; DB::transaction(function () use($cancellation, $order, $approved) { $this->orderManager->decideCancellation($cancellation, $approved); if ($approved) { $this->orderManager->getOrderRepository()->cancel($order); } }); return $this->success(); }