private <T> Step triggerSystemReactionForStep(T event, Step step) { if (step.getSystemReaction() == null) { throw new MissingUseCaseStepPart(step, "system"); } stepToBeRun.setupWith(event, step); recordStepNameAndEvent(step, event); setLatestStep(step); try { eventHandler.accept(stepToBeRun); } catch (Exception e) { handleException(e); } continueAfterIncludeStepWhenEndOfIncludedFlowIsReached(); triggerAutonomousSystemReaction(); return step; }