General Motors posts record profit