It's currently  hard to read/understand. From the name `setOrderUser` you cannot guess at all when it is triggered.
Actually there should be a protected method `doTheJob($order, $user)` where the job is really done. And several methods `onEvent1`, `onEvent2`, etc just using the `doTheJob` method.