events() ->whereNotNull('published_at') ->where('published_at', '<=', now()); if ($term !== '') { $query->where(function ($query) use ($term): void { $query->where('title', 'like', '%'.$term.'%') ->orWhere('subtitle', 'like', '%'.$term.'%') ->orWhere('location', 'like', '%'.$term.'%'); }); } return $query->with('attachment')->orderByDesc('published_at')->orderByDesc('id')->paginate(15, ['*'], 'page', $page); } public function find(Tenant $tenant, Event $event): Event { abort_unless($event->tenant_code === $tenant->codigo && $event->published_at !== null && $event->published_at->isPast(), 404); return $event->load([ 'attachment', 'dates' => fn ($query) => $query->whereNull('rescheduled_to_event_date_id')->whereNull('suspended_at'), 'socialMedia', 'catalogItems.attachments', 'catalogItems.inventory', 'catalogItems.itemAttributes.attribute', 'catalogItems.variants.inventory', 'catalogItems.variants.eventDate', 'catalogItems.variants.eventDates', ]); } }