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