Masalahnya ada di sini:
$q->where('vaccine_id','ILIKE','%' . $vaccine_id)
sepertinya vaksin_id adalah bilangan bulat, dan Anda tidak dapat menggunakan operator ILIKE ke bilangan bulat. Coba saja '='
Jika Anda ingin menggunakan LIKE, ILIKE atau operator teks lainnya, Anda harus mengirimkan data Anda ke teks. Dalam SQL itu harus terlihat seperti:
WHERE "vaccine_id"::text ILIKE val
sebagai gantinya
WHERE "vaccine_id" ILIKE val