nodes send transactions to the miners
Miners are nodes.
Nodes verify transactions that they receive and then relay them to other nodes. Those nodes verify the transactions they receive and then relay the transactions to more nodes. Those nodes verify the transactions they receive and then relay transactions to even more nodes, and so on.
Some of the nodes are also solo miners (or mining pools). You can be a node without being a miner, but you can't effectively solo-mine or operate a mining pool unless you are also a node. So, miners, or mining pools, are just special nodes that perform additional work.
who add them in a block to the blockchain, then send the block back to the nodes to validate them?
The nodes that are miners (or pools) choose which transactions to include in a block, and in doing so they set the order of the transactions (which transactions happen earlier, and which happen later).
The nodes that are miners (or pools) MUST follow the consensus rules when they build their block. If they don't then ALL of the other nodes will refuse to relay their block and the block will simply be ignored by everyone as if it never existed. After they build the block with the transactions they wish to include, they begin the proof-of-work (hashing). A solo miner does the proof-of-work (hashing) all by themselves. A mining pool sends out the completed block to all the pool participants and asks them to do the proof-of-work (hashing) for them. You do not have to be a node if you are just doing the proof-of-work (hashing) for a mining pool. If the proof-of-work (hashing) is completed before the solo-miner (or pool) receives a valid block from someone else, then you have a successful block. The block is then sent to all connected nodes.
Nodes verify the block and all the transactions in the block, and then relay it to other nodes. Those nodes verify the block they receive and all transactions in the block and then relay the block to more nodes. Those nodes verify the block they receive and all transactions in the block and then relay the block to even more nodes, and so on.
So...
Every node verifies every transaction that it receives AND every block it receives before relaying that block to any other node. If the transaction (or block) is invalid, then it is ignored. It is not shared with anyone else and it is just discarded. If the transaction (or block) is valid, then it is stored by the node AND relayed to all other nodes that are connected to that node. In this way, every node enforces ALL of the consensus rules and prevents and node, user, wallet, or miner from sending anything on the network that breaks the consensus rules.
Miners (or mining pools) get to choose which VALID transactions get to be in the next block. The perform a proof-of-work to build a valid block. They will not create a block that breaks the consensus rules (since it will be rejected by all nodes), but they can enforce any additional non-consensus rules if they all agree to do so.
For example, the current consensus rules state that a block cannot be LARGER THAN 1 megabyte. This means that miners will not create a block that is 2 megabytes unless almost all the nodes agree to the change in consensus rules (otherwise their block would be discarded by all nodes and wouldn't get relayed at all). But, if enough of the miners (more than 50% of the global hashpower) wanted to agree to never make blocks that are bigger than 750 kilobytes, they could enforce that rule. All nodes would accept and relay the blocks (since blocks that are less then 750 kilobytes don't break the consensus rule of 1 megabyte maximum size), but the miners could enforce the non-consensus rule of 750 kilobytes. As long as enough miners agree to enforce the rule, no miner would be able to create a larger block. Most nodes might still relay blocks that were more than 750 kilobytes, but the miners would ignore those blocks so the blocks would get discarded as soon as the rest of the miners created 2 blocks that were less than 750 kilobytes (since the chain with the 2 new blocks would be longer than the chain with the 1 new block).
In this way, the nodes enforce the consensus rules. The miners refuse to break the consensus rules. If enough miners agree to do so, then they can enforce additional restrictions that are not part of the consensus as long as those additional restrictions don't break any existing consensus rules.