вот в данном случае у вас могла бы быть функция которая принимает _buildDateContainers() и _buildTimeContainers() или те самые списки виджетов.
принимает leaveReason, сравнивает с LeaveReason.leeway и возвращает нужный List<Widget>
а в дереве виджетов вы вставляете функцию в список children без условий