Laravel 5.5 Method save does not exist when updating entries with modified primary key

Using get() returns a collection. Despite the fact you are passing in a 'unique' ID, the project_id, it will still return a collection - the collection will simply have one element in it.

Subsequently, your code will not work as you have experienced, or at least not without a few changes to make $project reference the first element in the collection.

It's a quick fix though, just change this:

$project = Project::where("project_id", $request->input('project_id'))->get();

to this:

$project = Project::where("project_id", $request->input('project_id'))->first();

By using first(), eloquent will return the first element that matches the query and actually return the element (as opposed to a collection with one element) and so you can directly edit and save it.