Problém je zde:
$q->where('vaccine_id','ILIKE','%' . $vaccine_id)
vypadá to, že vakcína_id je celé číslo a operátor ILIKE nelze použít jako celé číslo. Zkuste jen '='
Pokud chcete použít LIKE, ILIKE nebo jiný textový operátor, musíte svá data přenést do textu. V SQL to musí vypadat takto:
WHERE "vaccine_id"::text ILIKE val
místo
WHERE "vaccine_id" ILIKE val