Should the execution of `with()` be deferred until the collection is materialized? Otherwise the benefit of using `with()` could be negated or even be problematic.

Example of a problematic use;
`$collection = Article::all()->with('User')->limit(0, 10)`
would materialize all users.

Example of useless use:
```
$collection = Article::all()->limit(0, 10)->with('User);
...some code here...
$collection->filterBy('something = 1');
```
could materialize the wrong users