This is easy, but the details matter. In principle, go to the FSM that makes the character move. Add a separate state without actions. Add a global event, called say, “STOP” connected to the new separate state. Now you can set the FSM to this empty state, disabling the inputs for a while from somewhere else. You can do this from another FSM, or send the event also from the animation in quesion.
By animation: Go to the animation clip, add an event to the animation timeline (find the tiny button above the list of gameobjects that are animated). Find SendEvent, and send “STOP” (i.e. the global event that puts movement in an idle state).
Now you need to worry about how to give control back. You can do the same in reverse, e.g. “MOVE” SendEvent at the end of the animation that sets the state back to move (and a “MOVE” global event going in at the right place where it listens to buttons/axis). The danger is that with blending animations, the reset part isn‘t executed.
Another way is through a second FSM, let’s call it “stopper”, without involving animation clips (probably better). I assume you tell animator anyway when to play a certain animation. Say, you want that no movement is possible during attacking. When you e.g. set the animator bool “isAttacking” you can as well send event to the stopper, and it takes care of suspending the player input. When you also know when attacking ends, you can likewise send event to stopper to restore movement controls. The stopper functionality can also be on the FSM that deals with the mechanic (attacking in my example). But you will get into trouble when multiple FSMs use the same technique. Then you want a separate FSM that manages this.
Now some details. The stopper FSM could disable/enable the movement FSM or script altogether, but that can get wonky with physics. Another way is to set the multiplier on the set velocity action to zero, and back when done (provided you use that). Instead of using an event to restore movement, you can also use a simple wait action, if you know the time, i.e. event sets it to the empty state, it waits there and when finished, go back to normal, START etc.
I use a stopper FSM. The gist is this: the jump FSM tells the stopper to stop movement for 0.2 seconds. The stopper FSM then gets the movement multiplier from the movement FSM (to store and reset later), then sets it to zero, and it then waits, using the 0.2 seconds until it sets the multiplier back to the original value I stored, resetting the functionality.