Проблемът е тук:
$q->where('vaccine_id','ILIKE','%' . $vaccine_id)
изглежда, че vaccine_id е цяло число и не можете да използвате оператор ILIKE за цяло число. Опитайте само '='
Ако искате да използвате LIKE, ILIKE или друг текстов оператор, трябва да прехвърлите вашите данни към текст. В SQL трябва да изглежда така:
WHERE "vaccine_id"::text ILIKE val
вместо това
WHERE "vaccine_id" ILIKE val