rewrite `iter_payday_events()` and increase its test coverage