/**
     * Display the specified resource.
     *
     * @param  $id integer
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        $lessons_count = Lesson::selectRaw('COUNT(id)')->whereIn('section_id', function ($query) {
            $query->select('id')->from('sections')->whereRaw('`sections`.`course_id` = `courses`.`id`');
        });

        $course = Course
            ::select('*')
            ->selectSub($lessons_count, 'lessons_count')
            ->when(auth()->check(), function ($query) {
                $last_completed_lesson_id = DB::table('lesson_user')->select('lesson_id')->whereIn('lesson_id', function ($query) {
                    $query->select('id')->from('lessons')->whereIn('section_id', function ($query) {
                        $query->select('id')->from('sections')->whereRaw('`sections`.`course_id` = `courses`.`id`');
                    });
                })->orderBy('lesson_id', 'desk')->limit(1);

                $completed_lessons_count =
                    DB::table('lesson_user')->selectRaw('COUNT(lesson_id)')->whereIn('lesson_id', function ($query) {
                        $query->select('id')->from('lessons')->whereIn('section_id', function ($query) {
                            $query->select('id')->from('sections')->whereRaw('`sections`.`course_id` = `courses`.`id`');
                        });
                    });

                $query->selectSub($last_completed_lesson_id, 'last_completed_lesson_id');
                $query->selectSub($completed_lessons_count, 'completed_lessons_count');
            })->findOrFail($id);

        return view('courses.show', ['course' => $course]);
    }