Cannot use laravel relationship property in blade view

I am trying to use a property from model relationship {{$item->items->item_name}}, but it says Attempt to read property "item_name" on null.

However, when I am trying to {{dd($item->items->item_name)}} it returns a string "Old Boots.

Why does it happen? The value is definitely there but I cant echo it…

UserItems table: id | user_id | item_id

UserItem Model:

<?php

namespace AppModels;

use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateDatabaseEloquentModel;

class UserItem extends Model
{
    use HasFactory;

    public function items()
    {
        return $this->hasOne(Item::class, 'id');
    }
}

Item table structure: id | item_name

Item Model:

<?php

namespace AppModels;

use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateDatabaseEloquentModel;

class Item extends Model
{
    use HasFactory;
}

Controller function:

public function heroView() :View
{
    return view('hero', [
        'userItems' => UserItem::with('items')->where('user_id', Auth::id())->get()
    ]);
}

View:

        <table>
            @foreach ($userItems as $item)
            <tr>
                <td>{{$item->items->item_name}}</td>
            </tr>
            @endforeach
        </table>

In view {{dd($item)}}:

enter image description here