How to sort posts according to meta value?

‘meta_key=keyname’ must also be present in the query so I think you’d want

$args = array(
'meta_query' => array(
    array(
        'key' => 'wpcf-stream',
        'value' => $_POST['category'],
        'compare' => '='
    )
),
'orderby' => 'meta_value',
'meta_key' => 'wpcf-stream', 
'post_type' => 'half-day-course',
'posts_per_page' => 100,
'order' => 'ASC'
);

to display the rest of the posts I’d run a 2nd query and exclude the posts returned in the 1st query

error code: 523