Maybe we need a method for this common logic? Maybe `get_or_create_batch`?