Custom transactional observer added via AfterBeanDiscovery event is not registered for later invocation during the transaction completion phase but invoked immediately. Weld should call getTransactionPhase() to handle custom observer properly.
10.5. Observer notification:
For a custom implementation of the ObserverMethod interface defined in Section 11.1.3, "The ObserverMethod interface",
the container must call getReception() and getTransactionPhase() to determine if the observer method is a conditional
or transactional observer method, and notify() to invoke the method.
See TCK test: