That is just incidental that our entities get saved along the way, but in theory you can have an entire checkout process only happening in memory. That is why doctrine doesn't expose foreign key ids either, you're supposed to just work with objects and their interfaces.

I'm not sure phpspec is missing features.. it just wants you to work with the interface.