There is a discussion happening on this very subject over here: https://github.com/Sylius/Sylius/issues/802
I think incrementing promotions would best be left to a different listener, after the required relationships are created.