Making Semi Auto Mosfet For airsoft

triggerState never gets set to LOW.

You only ever check the cutoffState when triggerState changes. I think you should check it on every loop although it does something different depending if the trigger is currently held.