前提・実現したいこと

以下のような関連付けをしているモデルがあります。
Plan=>Course=>Lesson
deviseのモデルUser
中間テーブル
- course_plan
- bookmark

course_planモデルにpositonカラムがあります。
bookmarkのindexページでpositionカラム順にbookmarkを並べ替えたいのですが、どのようにすればよいでしょうか?

class Plan
  has_many :users

  has_many :course_plans, -> { order(position: :asc) }, dependent: :destroy

  has_many :courses, -> { includes(:course_plans).order('course_plans.position       ASC') }, through: :course_plans


 class CoursePlan
  belongs_to :course
  belongs_to :plan


 class Course < ActiveRecord::Base
  has_many :lessons, -> { order(chapter: :asc) }, dependent: :destroy
  accepts_nested_attributes_for :lessons
  has_many :course_plans
  has_many :plans, through: :course_plans


class Lesson < ActiveRecord::Base
  belongs_to :course
  has_many :bookmarks
  has_many :bookmarked_users, through: :bookmarks, source: :user


class Bookmark < ActiveRecord::Base
  belongs_to :user
  belongs_to :lesson

試したこと

現在は苦肉の策で
コースIDが若い順、同一コースの場合はレッスンIDが若い方を上にしています。

def bookmarks
@bookmarks = Bookmark.where(user_id: current_user.id).sort_bookmarks
@bookmarks = Bookmark.joins(lesson:     [:course]).order("course_id").order("chapter").where(user_id: current_user.id)
  end

joinsincludesしてみましたが、うまくいきませんでした。
どなたか教えていただけると幸いです。

下記回答頂いて、やりたいことまでかなり近づきました!

しかし、これをviewでeach文で取り出したところ、同じブックマークしたレッスンが4つも出てきてしまいました。ログインしているユーザーがブックマークしたレッスンをcourse_planのposition順かつ同一コースの場合はレッスンIDが若い方を上に並べたいです。
下記現在のコードです。

controller.rb
def bookmark
 @bookmarks = Bookmark.joins(lesson: { course: :course_plans }).order(CoursePlan.arel_table[:position].desc).where(user_id: current_user.id)
end

(bookmark.html.erb)

        <% if @bookmarks.blank? %>
      <div class="not_found">
        <%= "ブックマークしているレッスンはありません" %>
      </div>
    <% else %>
      <div id="collapseOne" class="panel-collapse collapse in">
        <div class="panel-body">
          <table id="memo_table" class="table">
            <thead>
              <tr>
                <th class="">コース名</th>
                <th class="">ブックマークしたレッスン</th>
              </tr>
            </thead>
            <tbody>
              <% @bookmarks.each do |bookmark| %>
                <% if bookmark.present? %>
                  <tr valign="top">
                    <td class="s12">
                      <%= link_to course_path(bookmark.lesson.course) do %>
                        <%= bookmark.lesson.course.title %>
                      <% end %>
                    </td>
                    <td class="s12">
                      <%= link_to lesson_path(bookmark.lesson) do %>
                        <%= bookmark.lesson.title %>
                      <% end %>
                    </td>
                  </tr>
                <% end %>
              <% end %>
            </tbody>
          </table>
        </div>
      </div>
    <% end %>