Former President Donald Trump has been criminally charged over a 2016 hush money payment to porn star Stormy Daniels by his then-lawyer Michael Cohen.