What do you need the button gameobjects for? I see you're getting the gameobjects and setting them in that FSM, but why? What are you going to do with those game objects stored in the FSM?
The only reason you'd do that is if you want that FSM to *do something* to that game object. Like de-activate it, move it, etc.
How are you triggering your buttons? First you need something that triggers your button is pressed/clicked on/stepped on, whatever. Either using a raycast trigger or something. Then however you are triggering that button as "clicked/turned on/set to true", then you would send that variable (like boolean=true) into a logic FSM that checks if all the buttons have been clicked.
From what I can tell you're getting the FSM gameobject but you don't have a plan as to why?
Really all you need is a way to track your button triggers and some way to activate them (and that can be done in probably a lot of ways), check if they're all true, then de-activate or destroy the gate.