Laravel.io
public function index()
    {
        $accessories = Accessory::with(['photos.color', 'photos.photo'])->latest('id')->get()->toArray();

        foreach ($accessories as $index => $accessory){
            $colors = [];

            foreach ($accessory['photos'] as $photoIndex => $photo){
                $colors[$photo['color']['id']]['color'] = $photo['color'];
                $colors[$photo['color']['id']]['urls'][] = $photo['photo']['url'];
            }

            $accessories[$index]['photos'] = $colors;
        }

        return response()->json($accessories, 200);
    }

Please note that all pasted data is publicly available.