After doing all the necessary steps (state diagram, new state table, flip-flop transition table, Karnaugh maps, logic expressions of flip-flops, and finally counter implementation), I simulated the obtained circuit with Isis Proteus and the results were convincing.

But, is there a more elegant way to do that? because to avoid the case 0000 I used the set input of FFA to begin the count with 1000.

Thanks.