{{ $tab }} Management

Match Metrix predictions, subscriptions and settings monitor.

@if(session('success'))
{{ session('success') }}
@endif
@if($tab === 'dashboard')
Total Users

{{ $stats['total_users'] }}

Active VIP Subs

{{ $stats['active_subscribers'] }}

VIP Packages

{{ $stats['total_packages'] }}

Open Tickets

{{ $stats['open_tickets'] }}

USD Revenue (Stripe/Card)

${{ number_format($stats['total_earnings_usd'], 2) }}

UGX Revenue (Mobile Money)

{{ number_format($stats['total_earnings_ugx']) }} UGX

Card Earnings

${{ number_format($stats['card_earnings_usd'], 2) }}

Mobile Money Earnings

{{ number_format($stats['mobile_earnings_ugx']) }} UGX

Pending Tickets

View all
@forelse($tickets->where('status', 'open')->take(5) as $ticket)

{{ $ticket->subject }}

{{ $ticket->user->name ?? 'Guest User' }} • {{ $ticket->created_at->diffForHumans() }}

{{ $ticket->priority }}
@empty
No open tickets. All clean!
@endforelse

Latest Predictions

Manage
@forelse($predictions->take(5) as $pred)

{{ $pred->team1 }} vs {{ $pred->team2 }}

{{ $pred->league }} • Tip: {{ $pred->selection }}

{{ $pred->status }}
@empty
No predictions added yet.
@endforelse
@endif @if($tab === 'packages')
@foreach($packages as $pkg)

{{ $pkg->title }}

{{ $pkg->price }}

{{ $pkg->subtitle ?? 'Premium VIP predictions package' }}

Duration: {{ $pkg->duration_days }} Days
Card Layout: {{ $pkg->layout_name }}
State: {{ $pkg->is_locked ? 'Locked (Paid)' : 'Free' }}
@csrf @method('DELETE')
@endforeach
@endif @if($tab === 'predictions')
@forelse($predictions as $pred) @empty @endforelse
League Fixture Prediction Target Package Date Status Actions
{{ $pred->league }}
@if($pred->team1_logo)@endif {{ $pred->team1 }} vs {{ $pred->team2 }} @if($pred->team2_logo)@endif
{{ $pred->selection }} {{ $pred->vipPackage->title ?? 'None' }} {{ $pred->prediction_date->format('M d, Y') }}
@csrf @method('PATCH')
@csrf @method('DELETE')
No predictions registered. Add one to start.
@endif @if($tab === 'users')
@forelse($users as $user) @empty @endforelse
User Name Email Registered Date Role Quick Action
{{ $user->name }} {{ $user->email }} {{ $user->created_at->format('M d, Y H:i') }} {{ $user->is_admin ? 'Admin' : 'User' }}
No registered users found.
@if($users->hasPages())
{{ $users->appends(['tab' => 'users'])->links() }}
@endif
@endif @if($tab === 'tickets')
@forelse($tickets as $tkt) @empty @endforelse
User Subject Message Priority Status Actions
{{ $tkt->user->name ?? 'Guest User' }}
{{ $tkt->user->email ?? 'no-email' }}
{{ $tkt->subject }} {{ $tkt->message }} {{ $tkt->priority }} {{ $tkt->status }} @if($tkt->status === 'open') @else Resolved ✓ @endif
No support tickets found.
@endif @if($tab === 'settings')

Global Configuration

@csrf
Used to convert USD packages to UGX Mobile Money payments. (e.g. 3700)

Relworx Mobile Money settings Encrypted at Rest

@if(!empty($settings['relworx_api_key']))
{{ Str::limit($settings['relworx_api_key'], 48) }}

Currently encrypted. Enter a new value below to replace it.

@endif
@if(!empty($settings['relworx_account_no']))
{{ Str::limit($settings['relworx_account_no'], 48) }}

Currently encrypted. Enter a new value below to replace it.

@endif
Credentials are AES-256 encrypted before storage. Leave fields blank to keep existing values unchanged. Use placeholder_key to enable simulation mode.

Flutterwave Card settings

@endif @if($tab === 'earnings')
Total USD Earnings

${{ number_format($stats['total_earnings_usd'], 2) }}

Total UGX Earnings

{{ number_format($stats['total_earnings_ugx']) }} UGX

Card (USD)

${{ number_format($stats['card_earnings_usd'], 2) }}

Withdrawable Balance

{{ number_format($stats['available_balance_ugx']) }} UGX

Gross MoMo income: {{ number_format($stats['mobile_earnings_ugx']) }} UGX
@php $totalWithdrawnDisplay = $stats['mobile_earnings_ugx'] - $stats['available_balance_ugx']; @endphp
Total withdrawn + fees: -{{ number_format(max(0, $totalWithdrawnDisplay)) }} UGX
Showing {{ $earnings->firstItem() ?? 0 }}-{{ $earnings->lastItem() ?? 0 }} of {{ $earnings->total() }} payments

Payment Ledger

@forelse($earnings as $earn) @empty @endforelse
User VIP Package Payment Method Amount Transaction Reference Status Date & Time
{{ $earn->user->name ?? 'Deleted User' }}
{{ $earn->user->email ?? '-' }}
{{ $earn->vipPackage->title ?? 'Deleted Package' }} @if($earn->payment_method === 'card') Card / Stripe @elseif($earn->payment_method === 'mobile_money') Mobile Money @else Manual / Admin @endif @if($earn->amount_usd) ${{ number_format($earn->amount_usd, 2) }} @elseif($earn->amount_ugx) {{ number_format($earn->amount_ugx) }} UGX @else Free @endif {{ $earn->transaction_ref ?? 'N/A' }} {{ $earn->status }} {{ $earn->created_at->format('M d, Y H:i') }}
No payments recorded matching your filters.
@if($earnings->hasPages())
{{ $earnings->appends(request()->query())->links() }}
@endif

Withdrawal History

@forelse($withdrawals as $wd) @empty @endforelse
Beneficiary Name Phone Number Withdrawal Amount Processing Charge Total Deducted Reference Status Date
{{ $wd->customer_name ?? 'N/A' }} {{ $wd->phone }} {{ number_format($wd->amount) }} UGX {{ number_format($wd->charge) }} UGX {{ number_format($wd->amount + $wd->charge) }} UGX {{ $wd->reference }} {{ $wd->status }} {{ $wd->created_at->format('M d, Y H:i') }}
No withdrawals processed yet.
@endif @if($tab === 'notifications')

Send Push Notification

@csrf
Send to all active users or pick a user with a registered device token.
Drag & drop or click to choose file Supports JPEG, PNG, WEBP (Max 4MB)
Paste direct image URL with https.
@endif