You could use the model's events to intercept the updating event and set a value on the instance before it is persisted. There are a small number of different approaches from a boot() method and Closure, to a $dispatchesEvents and Event Handler class; the suitability of a particular approach would depend on the complexity of the check you are performing.
EDIT example of a Closure approach
protected static function boot()
{
static::updating(function ($model) {
if ($model->someCondition) {
$model->update(['date' => now()]);
}
});
}