I know everyone says that we need mining to solve the double spending issue, but why? OK I am Alice and I want to send Bob some money, but double spend that money. This is the part where you say mining solves the problem, but why doesn't Bob also transmit the message? When Alice broadcast what she wants to be her fake message she is adding all the components to make it a valid message. She still has to sign that message with her private key. She still has to sign for the amount. Bob can't make that Transaction happen twice, by repeating it so him broadcasting it to the rest of the network won't cause any harm. If Alice is being honest then she already did it and the network can ignore Bob sending it again, but if she is not being honest then bob sending it again will force it to be a valid message even if Alice doesn't want it to be. When Alice tries to double spend with charlie, Charlie already knows because Bob sent the transaction out.
Alice has 1 bitcoin.
Alice sends that same bitcoin to both Bob and Charlie, forming two different transactions, both valid.
The next day, Bob sends a transaction sending his bitcoin to Ed while Charlie sends a transaction sending his bitcoin to Felix.
How do we guarantee that George, Heather, Ilene, and John eventually agree who has which bitcoins even if they all see all the transactions?
Now, we later discover that Alice also submitted a transaction sending that same bitcoin to Karen who then sent it to Lisa. How do we ensure that Mark, looking at all these transactions comes to the same conclusions George, Heather, Ilene, and John does? Mark may not even see the transaction to Bob or the transaction to Felix.
With mining, it's easy to ensure that views on the state of the distribution of the tokens don't keep diverging to the point where nobody ever agrees with anyone on who holds what. The valid chain with the most work wins. Without mining, how do we untangle these messes?
Proof-of-Work mining facilitates the creation of an ordering of transactions that is the same ordering in every part of the world.
Without some such mechanism, due to the properties of network propagation, a node in L.A. would receive transactions in a different order than one in Auckland. Each would receive transactions from nearby nodes before transactions from far away nodes and this would mean they see transactions in a different order. They would soon disagree about who owned coins. The network as a whole would fail to prevent double-spends.
You need miners so the network is not centralized. Who can write to the ledger is the key question.
The Bitcoin is a synergy of ideas, all the ideas together make it work. Mining itself doesn't solve double-spend. Look at your bank they don't have miners. Mining helps solve the problem of security of who gets to write to the ledger. So mining is part of that solution in the form of proof of work solves double-spending by making it difficult to create valid blocks.
Proof of Stake can also solve double-spend then you have validators instead of mining.