Change quote currency before place order

I want to change my quote currency code to EUR when an order is placed in any other currency.

I tried writing event and observer of event sales_order_place_before. In my observer I have this code

    $  quoteId = $  observer->getEvent()->getQuote()->getId();     $  quote = $  this->cartRepository->get($  quoteId);     $  this->storeManager->getStore()->setCurrentCurrencyCode('EUR');     $  quote->setQuoteCurrencyCode("EUR");     $  quote->collectTotals();     $  this->cartRepository->save($  quote); 

But after order is placed currency did not change to Euro.

I tried another event sales_quote_save_after, where currency is changed after every save of quote, but in that case, even the customer will see that his cart currency is changed to EUR, which I don’t want. I only want to change the currency when order is being placed (the customer should not be shown this anywhere, except on my orders)