Потому что тебе написали что обновление состояние процесс асинхронный. На следующей строчке после changeOrder в замыкании ещё старая переменная order. Она и выводится в консоль. Когда ты второй раз щелкнул то переменная order уже обновлена и поэтому оно и «работает».
Тебе нужно получше изучить что именно происходить в Реакте при всех этих изменениях состояния и прочее
в целом я понял причину, но не совсем понял как с этим далше быть, пойду изучать вопрос, спасибо за время ваше