Firstly, your lastCompletedStatus() is not conventional and does not return a relationship, but a retrieved model instead. In order to increase efficiency, you need the conventional approach:
public function lastCompletedStatus()
{
return $this->statuses()->wherePivot('completed_at', '!=', null)->latest()->take(1);
}
Then, you might simply query your orders by last completed status using Eloquent's whereHas() method:
$orders = $user->orders()->whereHas('lastCompletedStatus', function($query){
$query->where('name', 'given_status_name'); //or however you define a certain status
})->get();
This will retrieve all of the user's orders having their last completed status's 'name' column match the given value (in this case 'given_status_name'). You can change that accordingly.
Hope that answers your question!