Q:

Laravel collection, how to reference like $item->name instead of $item['name']

I would also love to know the name of what they both are? e.g. an array item referenced like $item['name'] and $item->name if there is a term for them! (not key, values)
$items = collection([
    [
        'name' => 'test item 1',
        'description' => 'this is a description',
    ],
    [
        'name' => 'test item 1',
        'description' => 'this is a description',
    ],
    [
        'name' => 'test item 1',
        'description' => 'this is a description',
    ],
]);

Then in the blade or anywhere id love to be able to reference them like 
foreach($items as $item) {
    echo $item->name;
}

instead of 
foreach($items as $item) {
    echo $item['name'];
}

EDIT
Solved thank you guys for the answers.
$collection->map(function ($section) {
    return (object) [
        'label' => $section['label'],
        'items' => collect($section['items'])->map(function ($item) {
            return (object) $item;
        }),
    ];
});

Full code below also used to check if item exists within the collection.
protected $collection = [];

public function __construct()
{
    parent::__construct();
    $this->collection = collect([
        [
            'label' => 'Section label 1',
            'items' => [
                [
                    'label' => 'Item label 1',
                    'description' => 'Item description',
                ],
            ],
        ],
        [
            'label' => 'Section label 2',
            'items' => [
                [
                    'label' => 'Item label 2',
                    'description' => 'Item description',
                ],
            ],
        ],
        [
            'label' => 'Section label 3',
            'items' => [
                [
                    'label' => 'Item label 3',
                    'description' => 'Item description',
                ],
            ],
        ],
    ])
    ->map(function ($section) {
        return (object) [
            'label' => $section['label'],
            'items' => collect($section['items'])->map(function ($item) {
                return (object) $item;
            }),
        ];
    });
}

public function show($slug = '')
{
    $item = $this->getItem($slug);

    if (null === $item) {
        abort(404);
    }

    return view('show')
        ->withItem($item);
}

protected function getItem($slug)
{
    return $this
        ->collection
        ->flatMap(function ($section) {
            return $section->items;
        })
        ->first(function ($item) use ($slug) {
            return str_slug($item->label) === $slug;
        });
}

A:

You can use the Collection::map function.
$items = $items->map(function($item) { return (object) $item; })

Then in your template:
@foreach ($items as $item)
    {{ $item->name }}
@endforeach

