yes and its available here: https://laravel.com/docs/12.x/queries#additional-where-clauses
But for your case you can simply do
->when($filter, function ($query, $filter) {
collect($filter)->each(function ($value) use ($query) {
$query->whereIn('products.value', explode(',', $value));
});
})
this is cleaner