Maybe like this:
jobs.get("job")
.start(step1())
.on("FAILED").to(step2())
.next(step3())
.from(step1())
.next(step3())
.next(step4())
.build().build();
(Step 2 is only executed if step 1 finished with status 'FAILED'. All other steps are executed in order. Is that what you intended?)