I think you should not hardcode states but get them somehow from `PaymentInterface`.  `ClassReflection` could help here?