qrCodes() ->where('type', QrCode::TYPE_PAYMENT) ->pluck('id'); $todayStart = now()->startOfDay(); $todayPayments = MiniPayment::query() ->whereIn('qr_code_id', $qrIds) ->where('status', MiniPayment::STATUS_PAID) ->where('paid_at', '>=', $todayStart); $todayCount = (clone $todayPayments)->count(); $todayMinor = (int) (clone $todayPayments)->sum('merchant_amount_minor'); $recentPayments = MiniPayment::query() ->whereIn('qr_code_id', $qrIds) ->where('status', MiniPayment::STATUS_PAID) ->with('qrCode') ->latest('paid_at') ->limit(8) ->get(); $paymentQrCount = $qrIds->count(); $balanceMinor = 0; try { $balanceMinor = $this->billing->balanceMinor($account->public_id); } catch (Throwable $e) { Log::warning('Mini dashboard could not load wallet balance', [ 'user' => $account->public_id, 'error' => $e->getMessage(), ]); } return view('mini.dashboard', [ 'todayCount' => $todayCount, 'todayMinor' => $todayMinor, 'paymentQrCount' => $paymentQrCount, 'recentPayments' => $recentPayments, 'balanceMinor' => $balanceMinor, ]); } }