Here is my table structure:

```
-- users
+----+-------+
| id | name  |
+----+-------+
| 1  | John  |
| 2  | Jack  |
| 3  | Peter |
+----+-------+

-- posts
+----+---------+----------------------+-----------+
| id |  title  |         body         | author_id |
+----+---------+----------------------+-----------|
| 1  | title1  | somthing             | 2         |
| 2  | title2  | whatever             | 1         |
| 3  | title3  | anything             | 3         |
+----+---------+----------------------+-----------+

-- comments
+----+-----------------+---------+-----------+
| id |     message     | post_id | author_id |
+----+-----------------+---------+-----------+
| 1  | my message      | 3       | 2         | 
| 2  | whatever        | 1       | 3         |
+----+-----------------+---------+-----------+

```

Now I want to get *a post with all its comments*. Here is my code:

```
    $post= Posts::orderBy('id', 'DESC')->where('id', $request->id)->first();
    $comments = $post->comments;

```

Noted that I have this relation in the `User` model:

```
public function comments()
{
    return $this->hasMany('App\Comments','post_id', 'id')->orderBy('id');
}

```

---

**What's my question?** I also want to get the name of comments' author. I mean the name of the person who has written the comment. anyway, how can I make a relation on an existing relation?

**Note:** I can do that by a raw `JOIN`. But I want to know how can I do that by Laravel relations?