Problemet är här:
$q->where('vaccine_id','ILIKE','%' . $vaccine_id)
ser ut som vaccine_id är heltal, och du kan inte använda operatorn ILIKE till heltal. Försök bara '='
Om du vill använda LIKE, ILIKE eller annan textoperator måste du casta din data till text. I SQL måste det se ut så här:
WHERE "vaccine_id"::text ILIKE val
istället
WHERE "vaccine_id" ILIKE val