subDays(30); $completed = Payment::query() ->where('status', PaymentStatus::Completed) ->where('initiated_at', '>=', $since) ->count(); $failed = Payment::query() ->where('status', PaymentStatus::Failed) ->where('initiated_at', '>=', $since) ->count(); $resolved = $completed + $failed; $rate = $resolved > 0 ? round(($failed / $resolved) * 100, 1) : 0.0; return [ Stat::make('Payment Failure Rate', $rate.'%') ->description("{$failed} failed of {$resolved} resolved (last 30 days)") ->color($rate >= 20 ? 'danger' : ($rate > 0 ? 'warning' : 'success')), ]; } }