As Bob has said, using ID's can cause problems in the future as they can potentially change, you should also lower the amount of states you have,
WITHDRAW_KNIFE, and WITHDRAW_LOGS dont really need to be seperate, you could have one state called WITHDRAW and have a few conditionals in there.