user()->hasRole('admin'), 403); return view('admin.index', [ 'counts' => [ 'users' => User::count(), 'jobs' => JobPost::count(), 'work_orders' => WorkOrder::count(), 'disputes' => Dispute::count(), 'attachments' => Attachment::count(), ], 'users' => User::with('roles')->latest()->limit(10)->get(), 'jobs' => JobPost::with('buyer')->latest()->limit(10)->get(), 'workOrders' => WorkOrder::with('jobPost', 'buyer', 'provider')->latest()->limit(10)->get(), 'disputes' => Dispute::with('workOrder.jobPost', 'openedBy')->latest()->limit(10)->get(), 'reportedReviews' => Review::with('workOrder.jobPost', 'reviewer', 'reviewee', 'reportedBy') ->where('moderation_status', 'reported') ->latest('reported_at') ->limit(10) ->get(), 'importedHistories' => ExternalProfileImport::with('providerProfile.user', 'attachments') ->whereIn('verification_status', ['provider_attested', 'needs_more_proof']) ->latest() ->limit(10) ->get(), 'importSources' => ExternalImportSource::with('providerProfile.user', 'externalProfileImport', 'uploadedBy') ->whereIn('review_status', ['needs_review', 'provider_reviewed']) ->latest() ->limit(10) ->get(), 'moderationReports' => ModerationReport::with('reporter', 'reportable') ->whereIn('status', ['open', 'reviewing']) ->latest() ->limit(15) ->get(), 'auditLogs' => AuditLog::with('actor', 'auditable') ->latest() ->limit(20) ->get(), ]); } }