вы сделали leftjon и затем используете, когда вам больше не нужно использовать
if(!empty($development)){
$query->where('development_id', $development);
}
это больше, вы можете использовать
->when($development=="" ? false : true, function($query) use ($development){
return $query->where('development_id', $development);
})
это полный пример
$queryBuilder = DB::table('facturas')->
leftJoin('clientes','clientes.id','=','facturas.clientes_id')->
select('facturas.estados_id as estado','facturas.numero as
numero',DB::raw('concat(clientes.nombre," ",clientes.apellido) as cliente'))->
when($estados===null ? false: true,function($query) use ($estados){
return $query->whereIn('facturas.estados_id', $estados);
})