If I want to put more state in the code, besides setting in enum,
what else should I write for : (led7 fade in/out, led6&8 fade in/out) ?
First add more states to the enum. They do not even need to be in the order in which they will be used but it makes sense if they are.
Then look at how the program changes state. A good example is the state that waits 5 seconds. The start time is set in the state that we are coming from (ALL_FADE_UP_TOGETHER) and the LEDs are set to an initial state at the same time. The currentState is then set to ALL_ON_FOR_5_SECS and next time through loop() the code for the ALL_ON_FOR_5_SECS state is executed.
So, after adding a new state to the enum you need to write the code for it in its own case in the switch/case and set up any entry parameters such as start time and LED states in the case that you are coming from. When that is done set currentState to the state to switch to and the code for your next state will be executed next time through loop().
Some things to note. You can use a state to fade a given LED up and down and use the same state again to fade a different LED up and down but you will need to set the LED number up in the previous state and also set a variable to hold the next state or LED number. This can get quite complicated. My advice would be to initially write the code for each state separately with a view to improving it later.
You can, of course, use functions to do common tasks like the setPwmLevelForAllLeds() function in my example. Doing this can drastically reduce the code in a state and using descriptive names for the functions helps make it more readable.