Order by relationship

Order by

// 80ms
$moviesOrder = Movie::with(['video'])
  ->orderBy(Video::select('last_modified')->whereColumn('videos.id', 'movies.video_id'), 'desc')
  ->take(20)
  ->get()
  ->toArray();

From relationship

// 90ms
$videos = Video::with(['movie'])
  ->orderBy('last_modified', 'desc')
  ->take(20)
  ->get()
  ->toArray();

Join

$moviesJoin = Movie::with(['video'])
  ->join('videos', 'movies.video_id', '=', 'videos.id')
  ->orderBy('videos.last_modified', 'desc')
  ->take(20)
  ->get()
  ->toArray();