Whats best practice for sending ether to a payable address?

Have a look at sendValue though you need to ensure that you don't introduce reentrancy vulnerabilities: https://docs.openzeppelin.com/contracts/2.x/api/utils#Address-sendValue-address-payable-uint256-

I suggest reading Reentrancy after Istanbul for ways to deal with this: