Got it fixed. Here is the code:
add_action('wp_head', function(){
if(is_user_logged_in()){
$user = wp_get_current_user();
if ( in_array( 'pre_subscriber', (array) $user->roles ) ) {
$passed = learndash_user_quiz_has_completed($user->ID, 8731, 8388);
if($passed){
// Remove role
$user->remove_role( 'pre_subscriber' );
// Add role
$user->add_role( 'subscriber' );
}
}
}}
);