Refactor payments
Improve testability of event system and add unit tests for OrderService