I did a domain migration a few years ago and got severely burned by it despite taking all possible precautions (i.e. months of planning, identification of all "best practices" in this area, use of all relevant Google migration tools, enlisting the support of a well-respected SEO agency, etc. etc.). Despite all of that we lost the majority of our organic traffic almost overnight and despite working on it for almost a year afterwards, it has never fully returned to previous levels.
So my advice, for what it's worth, would be to avoid changing your domain name, unless it is an absolute commercial necessity for your business and/or if you can withstand the loss of your organic traffic. No matter what precautions you might take, that is a very real risk.
The next bit is not intended as advice and I'm not offering it as such, but I'll outline what I'd do if I had my time again.
Firstly, read everything that's out there on domain migration and get the best possible understanding of the process, the techniques and the risks. Don't start anything until you feel like you know it inside out.
Almost all of that material will talk about using 301 redirects, but personally, that would not be my approach. No matter how well prepared you think you are don't just drop a site-wide redirect in place. My approach would be to host the site on both the old and new domains but with a no-index instruction on the new domain. I'd then deploy cross-domain canonical links on a section-by-section basis, starting with a relatively low-risk section and removing the no-index instructions for each section on the new site as I worked through it.
It's complex: you'll need to pay close attention to the internal link structure on the new site as you go along and work out at which points to start using the new domain in those URLs. It'll also take longer, but you'll be able to monitor the transition and the impact on search visibility for each section of your site as you migrate it.
Even with this approach, based on my previous experience with cross-domain canonicals, I'd expect roughly a 30% drop in organic traffic but you'll be in control of the process: you can take it at your own pace and evaluate/mange/mitigate the risk at each stage.
Only when you've got the site moved over to the new domain would I look at closing-off the old domain with redirects and the other "normal" domain migration measures.
Before anyone gets upset, I'm not posting this to troll the SEO community. I'm not an SEO professional and I know that many of those who are will regard this as bad advice - that's fine by me. As I tried to make clear above, this is not my advice: My advice is not to attempt it in the first place.
This is purely a description of what I'd do differently with the benefit of hindsight.
I wish you all success with your migration.