attributes->get('supervisor') ?? $request->user(); $promotions = EnsureSupervisorScope::promotionsQuery($supervisor) ->when($request->filled('establishment_id'), fn ($q) => $q->where('establishment_id', $request->integer('establishment_id'))) ->when($request->boolean('active_only'), fn ($q) => $q->where('is_active', true)) ->orderByDesc('starts_at') ->paginate($request->integer('per_page', 50)); return $this->success([ 'promotions' => PromotionResource::collection($promotions), 'meta' => [ 'current_page' => $promotions->currentPage(), 'last_page' => $promotions->lastPage(), 'per_page' => $promotions->perPage(), 'total' => $promotions->total(), ], ]); } }