Het probleem is hier:
$q->where('vaccine_id','ILIKE','%' . $vaccine_id)
het lijkt erop dat vaccin_id een geheel getal is, en je kunt de operator ILIKE niet gebruiken voor een geheel getal. Probeer gewoon '='
Als u LIKE, ILIKE of een andere tekstoperator wilt gebruiken, moet u uw gegevens naar tekst casten. In SQL moet het er zo uitzien:
WHERE "vaccine_id"::text ILIKE val
in plaats daarvan
WHERE "vaccine_id" ILIKE val