Symptoms
Your server seems to be properly set up for mail, and the MX records are correct, but you're still unable to receive mail.
Description
This situation can occur if other servers on the internet are not aware of the mail exchanger that your server thinks is being used.
Verify the correct mail exchangers are being used using the dig command:
dig MX yourdomain.com +short
This situation can also occur if your server does not correctly understand whether or not mail for the relevant domain is handled locally or remotely, as determined by cPanels email routing: What is The Difference Between Remote Vs. Local Mail Exchange Within "Email Routing"?
Workaround
Update the MX records at the authoritative nameserver to reflect the mail exchangers you'd like to use and also make sure cPanel's email routing is properly configured to reflect the type of mail exchanger that's referenced in your MX records.
Documentation on email routing can be referenced here: https://docs.cpanel.net/cpanel/email/email-routing/.
If you prefer to use the command line, you may adjust email routing with a UAPI function to set the Mail Exchanger (MX) type as documented here: https://documentation.cpanel.net/display/DD/UAPI+Functions+-+Email%3A%3Aset_always_accept