loadPayments(); } public function loadPayments(): void { $this->payments = Cache::remember('recent_payments', now()->addMinutes(15), function () { return Payment::with(['invoice.client', 'contact']) ->orderBy('payment_date', 'desc') ->orderBy('created_at', 'desc') ->limit(10) ->get() ->map(fn($payment) => [ 'id' => $payment->id, 'amount' => $payment->amount, 'payment_date' => $payment->payment_date->format('M j'), 'client_name' => $payment->invoice?->client?->abbreviation ?? $payment->invoice?->client?->name ?? 'Unknown', 'invoice_number' => $payment->invoice?->invoice_number, 'method' => $payment->payment_method->value, 'status' => $payment->status->value, 'status_color' => $payment->status === PaymentStatus::COMPLETED ? 'green' : ($payment->status === PaymentStatus::PENDING ? 'yellow' : 'red'), ]) ->toArray(); }); } #[On('payment-created')] public function clearCache(): void { Cache::forget('recent_payments'); $this->loadPayments(); } public function refresh(): void { Cache::forget('recent_payments'); $this->loadPayments(); } }; ?>
No payments yet
|
{{ $payment['client_name'] }}
{{ $payment['invoice_number'] }}
|
${{ number_format($payment['amount'], 2) }}
{{ $payment['payment_date'] }}
|
|
Cached for 15 min