用 state_machine method去判斷 & 更改狀態