Laravel - Relationships - Customizing The Pivot Attribute Name

As noted previously, attributes from the intermediate table may be accessed on models via the pivot attribute. However, you are free to customize the name of this attribute to better reflect its purpose within your application.

For example, if your application contains users that may subscribe to podcasts, you likely have a many-to-many relationship between users and podcasts. If this is the case, you may wish to rename your intermediate table attribute to subscription instead of pivot. This can be done using the as method when defining the relationship:

    
    return $this->belongsToMany(Podcast::class)
                    ->as('subscription')
                    ->withTimestamps();
	

Once the custom intermediate table attribute has been specified, you may access the intermediate table data using the customized name:

    
    $users = User::with('podcasts')->get();
    
    foreach ($users->flatMap->podcasts as $podcast) {
        echo $podcast->subscription->created_at;
    }