Ok, quite clean... but what with edge cases? I.e. when you got payments and the amount was biger than amount required by order? In that case those checks will fail =)

I think you definitelly need to write spec for this class =)