gathering – GatherBy[list, f] except with sublists ordered by f’s value

I want something like GatherBy[list, OddQ] but it either consistently puts the odd elements first or consistently puts the even elements first, rather than have it depend on list. The actual function I want to use it with is also boolean, although a more general solution that doesn’t rely on this would be nice to have as well.