Problem jest tutaj:
$q->where('vaccine_id','ILIKE','%' . $vaccine_id)
wygląda na to, że id_szczepionki jest liczbą całkowitą i nie można użyć operatora ILIKE do liczby całkowitej. Spróbuj po prostu „=”
Jeśli chcesz użyć operatora LIKE, ILIKE lub innego operatora tekstowego, musisz przesłać swoje dane do tekstu. W SQL musi to wyglądać tak:
WHERE "vaccine_id"::text ILIKE val
zamiast tego
WHERE "vaccine_id" ILIKE val