Cameron promotes charities when it suits