'Call to undefined method App\Models\Catogry::firstItem()

I'm trying to create a CMS project but I got this error when I create the URL & Controller for the edit button (Call to undefined method App\Models\Catogry::firstItem()).

here is the web.php page

<?php

use App\Http\Controllers\CategoryController;
use App\Models\User;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', function () {
    return view('welcome');
});

Route::middleware(['auth:sanctum', 'verified'])->get('/dashboard', function () {
    // $users = User::all();
    $users = DB::table('users')->get();
    return view('dashboard', compact('users'));
})->name('dashboard');

//category controller
Route::get('/category/all', [CategoryController::class, 'index'])->name('index.category');
Route::post('/category/add', [CategoryController::class, 'store'])->name('store.category');
Route::get('/category/edit/{id}', [CategoryController::class, 'edit']);

here Is the CategoryController >>

<?php

namespace App\Http\Controllers;

use App\Models\Catogry;
use Carbon\Carbon;
use Illuminate\Auth\Events\Validated;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;

class CategoryController extends Controller
{
    public function index()
    {
        $categories = Catogry::latest()->paginate(5);
        return response()->view('Admin.category.index', compact('categories'));
    }



    public function store(Request $request)
    {
        $validated = $request->validate([
            'category_name' => 'required|unique:catogries|max:25|min:4',
        ]);

        //insert with three ways *****

        // Catogry::insert([
        //     'category_name' => $request->category_name,
        //     // 'user_id' => Auth::user()->id,
        //     'created_at' => Carbon::now()
        // ]);


        $categories = new Catogry;
        $categories->category_name = $request->category_name;
        $categories->user_id = Auth::user()->id;
        $categories->save();

        // $date = array();
        // $data['category_name'] = $request->category_name;
        // $data['user_id'] = Auth::user()->id;
        // DB::table('catogries')->insert($data);

        return redirect()->back()->with('success', 'Category Inserted Successfully');
    }


    public function Edit($id)
    {
        // return 'edit page';
        $categories = Catogry::findOrFail($id);
        return response()->view('Admin.category.edit', compact('categories'));
    }
}

here is the edit.blade.php page >>

<form action="  " method="POST">
    @csrf
    <div class="card-body">
      <div class="form-group">
        <label for="category_name">Edit Your Category Name</label>
        <input type="text" class="form-control" id="category_name" name="category_name" placeholder="Enter category name"
        value="{{ $categories->category_name }}">
      </div>
    <div class="card-footer">
      <button type="submit" class="btn btn-info">Update Category</button><br>
      @error('category_name')
      <span class="text-danger">{{ $message }}</span>
    @enderror
    </div>
    <!-- /.card-footer -->
  </form>



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source