public function reject() : PaymentState { throw InvalidTransitionException::unexpectedTransition('paid', 'rejected'); }