How to hide a custom field if there is not a value

I believe you might be looking for this:

Types Conditional FIelds Display

And set each field to display only if not empty.

Then you can set up an array of field labels…

$fields['goal'] = 'My Goals: ';
$fields['commitment'] = 'My Commitments :';
// ... and so on...

Then loop through the fields to display them:

foreach ($fields as $fieldkey => $fieldlabel) {
    $field = types_render_field($fieldkey,array("user_current"=>"true");
    if ($field) {
        echo '<span class="heading-wrap"><h6 class="wpb_heading wpb_text_heading">';
        echo $fieldlabel.'</h6><span>'.$field.'</span></span>';
        echo '<br><hr>';
    }
 }

This assumes types_render_field returns false if the field is empty… you may have to test that to find out.