service->payout($batch); } catch (\RuntimeException $e) { $reason = $e->getMessage(); $msg = match ($reason) { 'settlement_not_approved' => trans('api.settlement_not_approved'), default => trans('api.client_error'), }; return ApiResponse::error($msg, ErrorCode::ClientHttpError->value, ['reason' => $reason], 409); } return ApiResponse::success([ 'id' => (int) $updated->id, 'status' => $updated->status, 'paid_at' => $updated->paid_at?->toIso8601String(), ]); } }