Each object contributes one understandable part of the workflow instead of one giant method doing everything.
A cleaner model lets `Cart`, `CartItem`, and `Product` each handle the questions that belong to them. That is a strong sign the design is moving away from a giant `main` method toward a real domain model.
Additional Notes
How do you know object collaboration is improving?