3 bit synchrous up-counter stops at six but it need to be stop at seven
You're asynchronously resetting your first FF when you get to seven.  As soon as you're at 6 and flip to 7, the output of U4A resets bit 0, and you go back to 6.  Disconnect U1 pin 3 (or tie high, but I note you're not driving the other set/reset lines, so I assume it's TTL or has internal pullups).  Then it'll work the way you want.