user()->public_id; $minor = Cache::remember("wallet_balance:{$publicId}", now()->addSeconds(30), function () use ($billing, $publicId) { try { return $billing->balanceMinor($publicId); } catch (\Throwable) { return null; } }); if ($minor === null) { return response()->json(['available' => false]); } $currency = (string) config('billing.currency', 'GHS'); return response()->json([ 'available' => true, 'balance_minor' => $minor, 'currency' => $currency, 'formatted' => $currency.' '.number_format($minor / 100, 2), ]); } }