El error es porque estas usando asignación dentro del if y no es necesario
Código PHP:
Ver originalpublic function detalle_evento($inventario_id, $vendedor = false){
$inventario = Inventario::where('id', $inventario_id);
if($vendedor){
$inventario->with(['Ventas' => function($query) use($vendedor){
$query->where('vendedor', $vendedor);
}]);
}else{
$inventario->with('Ventas');
}
return $inventario->first();
}
La razón de no usar la asignación es porque el resultado de la primera senctencia es un objeto
Builder y hasta que no hagas un first, get o find puedes seguir armando el query
Tambien puedes usar
when para sustituir el if. Por otro lado supongo que la segunda función esta como método del controller si es así separa todo en una nueva clase.
También hecha un vistazo al tema de
pruebas en Laravel; te hacen la vida mucho mas sencilla