I have array like this
$ans = [1,2,3];
$ans2 = [5, 4]
$ans3 = [6,7];
Syntax 1 :
 $query->whereIn($field , $ans);
 $query->whereIn($field1 , $ans2);
 $query->whereIn($field2 , $ans3); //problem is here when array 
//has null value it doesnt work as expected
so query is something like
select * from table 
where field in (1,2,3) 
and field1 in (5,4) 
and field2 in (6,7) 
result is correct because it is doing and for all field && field1 && field2
but when input has null it didn't work as expected
$ans = [1,2,3];
$ans2 = [5, 4]
$ans3 = [6,null];
now my query is
first solution
 $query->whereIn($field , $ans);
 $query->whereIn($field1 , $ans2);
 $query->whereIn($field2 , $ans3); //problem is here when array has null value
it doesnt work as expected
this dont work as we have null in feild3 so result is []
 $query->whereIn($field , $ans);
 $query->whereIn($field1 , $ans2);
 $searchArray = collect($field2)->filter()->all();//filter array having null values
 $query->whereIn($field2, $searchArray)
 $query->where($field2 , null); 
so query becomes something like this
select * from table 
    where field in (1,2,3) 
    and field1 in (5,4) 
    and field2 in (6)
    and field2 is null //wrong as field should have or in null case because i want to get field2 having 6 or null
that leads me to this
     $query->whereIn($field , $ans);
     $query->whereIn($field1 , $ans2);
     $searchArray = collect($field2)->filter()->all();//filter array having null values
     $query->whereIn($field2, $searchArray)
     ->orWhereNull($field2);
result is field2 having 6 and also null but not it dont take care of other fields query is like
 select * from table 
    where field in (1,2,3) 
    and field1 in (5,4) 
    and field2 in (6)
    or field2 is null //it always show results with null and 6
// but field1 and field2 are not matter are neglected
i want something like this may be this is the right approach
select * from table 
        where field in (1,2,3) 
        and field1 in (5,4) 
        and (field2 in (6)
        or field2 is null) //extra parenthesis so field 2 should have 6 or null but it should **and** field1, field2
any hint how i can achieve filed2 when has null and a value i.e [null, 6] should do something like this
(1 ,2,3 ) && (5,4) && (6 || null)
 
     
     
    