@extends('frontend.layouts.user.index') @section('title', __('Trade Order #').$order->id) @section('content') {{-- Trade Order Details: participant state, order overview, action buttons, dispute handling, and review flow --}} @php $side = $order->offer->side; // enum App\Enums\P2P\OrderSide $actorId = (int) auth()->id(); $sellerId = (int) ($side === \App\Enums\P2P\OrderSide::SELL ? $order->maker_id : $order->taker_id); $buyerId = (int) ($side === \App\Enums\P2P\OrderSide::SELL ? $order->taker_id : $order->maker_id); $role = $actorId === $sellerId ? 'seller' : ($actorId === $buyerId ? 'buyer' : 'guest'); $isExpired = $order->status->value === 'PENDING' && $order->expires_at && now()->greaterThan($order->expires_at); $hasFeedback = $order->relationLoaded('feedbacks') ? $order->feedbacks->where('user_id', $actorId)->isNotEmpty() : false; $canRate = $order->status->value === 'COMPLETED' && $actorId === (int) $order->taker_id && ! $hasFeedback; $myFb = $hasFeedback ? $order->feedbacks->where('user_id', $actorId)->first() : null; $payerSnapshot = is_array($order->payer_payment_account_snapshot) ? $order->payer_payment_account_snapshot : []; $receiverSnapshot = is_array($order->receiver_payment_account_snapshot) ? $order->receiver_payment_account_snapshot : []; $payerDetails = collect($payerSnapshot['details'] ?? [])->filter(function ($detail) { return is_array($detail) && trim((string) ($detail['value'] ?? '')) !== ''; })->values()->all(); $receiverDetails = collect($receiverSnapshot['details'] ?? [])->filter(function ($detail) { return is_array($detail) && trim((string) ($detail['value'] ?? '')) !== ''; })->values()->all(); $selectedPaymentMethodName = $order->paymentMethod?->name ?? ($payerSnapshot['payment_method_name'] ?? $receiverSnapshot['payment_method_name'] ?? __('Not available')); @endphp