Laravel nova resource extending/overriding the create method

In my opinion you should go for Observers. Observers will make you code more readable and trackable.

Here is how you can achieve the same with Laravel Observers.

AppServiceProvider.php

public function boot()
{
    Nova::serving(function () {
        Post::observe(PostObserver::class);
    });
}

PostObserver.php

public function creating(Post $post)
{
    $post->created_by = Auth::user()->id;   
}

OR

You can simply hack a Nova field using withMeta.

Text::make('created_by')->withMeta([
    'type' => 'hidden',
    'value' => Auth::user()->id
])

You could also do that directly within your Nova resource. Every Nova resource has newModel() method which is called when resource loads fresh instance of your model from db. You can override it and put there your logic for setting any default values (you should always check if values already exist, and only set if they are null, which will only be the case when the model is being created for the first time, which is what you actually need):

public static function newModel()
{
    $model = static::$model;
    $instance = new $model;

    if ($instance->created_by == null) {
        $instance->created_by = auth()->user()->id;
    }

    return $instance;
}

What you're looking for is Resource Events.

From the docs:

All Nova operations use the typical save, delete, forceDelete, restore Eloquent methods you are familiar with. Therefore, it is easy to listen for model events triggered by Nova and react to them. The easiest approach is to simply attach a model observer to a model:

If you don't feel like creating a new observable you could also create a boot method in your eloquent model as so:

public static function boot()
{
    parent::boot();

    static::creating(function ($vacancy) {
        $vacancy->created_by = auth()->user()->id;
    });
}

But please do note that these are a bit harder to track than observables, and you or a next developer in the future might be scratching their head, wondering how's the "created_at" property set.