Bitcoin core 0.19.1 RPC, 'sendtoaddress' not working! Suppose this scenario:

There are 2 wallets called wallet1 and wallet1 on the same node in testnet blockchain.
wallet1 balance: 0.001 BTC
wallet2 balance: 0 BTC

I am trying to send 0.001 BTCs from wallet1 to wallet2; so I use the sendtoaddress command like this:
bitcoin-cli -testnet -rpcwallet=wallet1 sendtoaddress &lt;wallet2 address&gt; 0.001 &quot;&quot; &quot;&quot; true.
This gives me a txid which none of the blockchain explorers like live.blockcypher.com/btc-testnet can't recognize it!

It deducts the coin from wallet1 and I don't know where does it go!?

For solving this, I tried to get the transaction hex to broadcast it via some other platforms to check if the raw transaction is correct and it was OK and after broadcasting it via the other platform, blockchain explorers could detect the transaction id.
Here are my question:

Isn't just using sendtoaddress enough for sending coins?
Why the broadcasting process doesn't complete on my node?

Here is my bitcoin.conf:
[test]
prune=600
blocksonly=1
maxconnections=15
testnet=1
regtest=0

deprecatedrpc=accounts
deprecatedrpc=addwitnessaddress
deprecatedrpc=signrawtransaction
deprecatedrpc=validateaddress

minrelaytxfee=0.0001
maxmempool=200
maxreceiverbuffer=2500
maxsendbuffer=500
dbcache=16000

rpcbind=0.0.0.0
rpcallowip=--

rpcuser=--
rpcpassword=--

server=1
rest=1
daemon=1
The main problem is the parameter blocksonly=1 in bitcoin config file. This prevents the node to broadcast transactions to the netwrok. I removed it and it works fine!