// SAFE VERSION - REPLACE THIS METHOD in app/Http/Controllers/Api/SkillController.php // Replace the index method (around lines 34-64) // This version maintains backward compatibility by always loading relationships public function index(Request $request) { $query = Skill::query(); // Filter by status if ($request->has('status')) { switch ($request->status) { case 'approved': $query->where('is_approved', true); break; case 'pending': $query->pending(); break; case 'custom': $query->custom(); break; } } // Search if ($request->has('search')) { $query->where('name', 'like', '%' . $request->search . '%'); } // Select only necessary columns (optimizes the main query) $skills = $query->select('id', 'name', 'category', 'is_approved', 'is_custom', 'user_id', 'created_at') ->orderBy('created_at', 'desc') ->paginate(20); // Load relationships after pagination (still more optimized than before) // This maintains backward compatibility $skills->load([ 'user:id,name,email', 'positions:id,title' ]); return response()->json([ 'success' => true, 'data' => $skills, ]); }