You will see that there are two queries, the first to get all the customers (you don't constrain that) and then to get the related models (your with('user')) the results are then merged in memory.
Yes, it is to eager load the users so that there is not later a query per user as you iterate through the customers and cause an n+1 performance issue.