getStorageUsed(); $totalStorage = $user->storage_quota; $storagePercent = $totalStorage > 0 ? min(100, round(($usedStorage / $totalStorage) * 100)) : 0; // File stats $fileCount = 0; // TODO: update when DB schema supports user->files() $recentFiles = collect(); // Writing stats $writingCount = $user->writings()->count(); $recentWritings = $user->writings()->orderBy('created_at', 'desc')->take(3)->get(); return view('dashboard', compact( 'user', 'usedStorage', 'totalStorage', 'storagePercent', 'fileCount', 'recentFiles', 'writingCount', 'recentWritings', )); } /** * Show activity statistics. * * @return \Illuminate\Http\JsonResponse */ public function statistics() { $user = Auth::user(); $stats = [ 'files' => [ 'count' => $user->files()->count(), 'size' => $user->files()->sum('size'), 'recent' => $user->files()->latest()->take(5)->get() ], 'writings' => [ 'count' => $user->writings()->count(), 'recent' => $user->writings()->latest()->take(5)->get() ], 'storage' => [ 'used' => $user->getStorageUsed(), 'total' => $user->storage_quota, 'percent' => min(100, round(($user->getStorageUsed() / max(1, $user->storage_quota)) * 100)) ] ]; return response()->json($stats); } }