I understand that miners are the ony part of the Bitcoin system which prevent double spending by validating transactions in the block.
this is wrong. a miner only finds a block after performing the computation that is required for that. the "Full Nodes" are validating transactions, blocks, ... now a miner can also run a full node to validate the transactions and then after he found the block he puts all those valid transactions inside that block and then broadcasts it to the whole network then each node verifies this new block and adds it to their chain.