setQuery(Holding::query()); $filters->setScopes(['myHoldings']); $filters->setEagerRelations(['market_data', 'transactions']); $filters->setSearchableColumns(['symbol']); return HoldingResource::collection($filters->paginated()); } public function show(Portfolio $portfolio, string $symbol) { Gate::authorize('readOnly', $portfolio); $holding = $portfolio->holdings()->symbol($symbol)->firstOrFail(); return HoldingResource::make($holding); } public function update(HoldingRequest $request, Portfolio $portfolio, string $symbol) { Gate::authorize('fullAccess', $portfolio); $holding = $portfolio->holdings()->symbol($symbol)->firstOrFail(); $holding->update($request->validated()); return HoldingResource::make($holding); } }