Your code has a few issues, some unrelated, but generally, you need named meta queries to order by multiple meta keys:
$posts = get_posts( [
'post_type' => 'soldier',
'posts_per_page' => 5,
'paged' => $soldier_paged,
'meta_query' => [
'last_name_clause' => [
'key' => 'last_name',
'compare' => 'EXISTS'
],
'first_name_clause' => [
'key' => 'first_name',
'compare' => 'EXISTS'
],
],
'orderby' => [
'last_name_clause' => 'ASC',
'first_name_clause' => 'ASC',
],
] );