with('user') ->when($request->string('category')->toString(), fn ($query, $category) => $query->where('category', $category)) ->when($request->has('approved'), fn ($query) => $query->where('approved', $request->boolean('approved'))) ->latest('created_at') ->paginate(20); return McpServerResource::collection($servers); } public function store(StoreMcpServerRequest $request): McpServerResource { $server = McpServer::query()->create([ 'featured' => false, 'approved' => false, ...$request->validated(), 'user_id' => $request->user()->id, ]); return new McpServerResource($server->refresh()->load('user')); } public function show(McpServer $mcpServer): McpServerResource { return new McpServerResource($mcpServer->load('user')); } public function update(UpdateMcpServerRequest $request, McpServer $mcpServer): McpServerResource { $mcpServer->update($request->validated()); return new McpServerResource($mcpServer->load('user')); } public function destroy(McpServer $mcpServer): Response { $mcpServer->delete(); return response()->noContent(); } }