Laravel.io
    /**
     * Hack to get polymorphic hasManyThrough
     *
     * $resourceClass = path to Eloquent model
     * $resourceableName = the resource's polymorphic name "photoable"
     * $relationship = the resource's middle relationship "photos"
     */
    public function hasManyThroughable($resourceClass, $resourceableName, $relationship)
    {
        $resourceables = $this->$relationship->filter(function ($resourceable) use ($resourceableName, $resourceClass) {
            $resourceable_type = $resourceableName . '_type';

            return $resourceable->$resourceable_type == $resourceClass;
        });

        $resources = $resourceables->map(function ($resourceable) use ($resourceableName, $resourceClass) {
            $resourceable_id = $resourceableName . '_id';

            return $resourceClass::find($resourceable->$resourceable_id);
        });

        return $resources;
    }

Please note that all pasted data is publicly available.