I checked the source code, union seems to be kind of hardcoded, in way that's not easy to use ->union(...)but substitute 'intersect' under the hood.
that said, you can manually do it long-form like this:
$q = DB::table('items')->where('id','>', 1)->union(DB::table('items')->where('id', '<', 5));
DB::select(str_replace('union', 'intersect', $q->toSql()), $q->getBindings());
or better:
$q1 = DB::table('items')->where('id','>', 1);