diff --git a/job.go b/job.go
index a08d69c900349a7dca5a2b7f572356e71faed4aa..d6082ab70233ebdb128ca11628e5af0607cc081e 100644
--- a/job.go
+++ b/job.go
@@ -83,6 +83,10 @@ func (j *Job[T]) GetStats() JobStats {
 	j.mu.Lock()
 	defer j.mu.Unlock()
 	// workaround for gorm
+	if j.stats == nil {
+		j.stats = &JobStats{}
+	}
+
 	j.stats.JobID = j.id
 	return *j.stats
 }
@@ -117,7 +121,9 @@ func (j *Job[T]) GetPersistence() JobPersistence {
 		job.Scheduler = j.scheduler.GetPersistence()
 	}
 
-	job.Stats.JobID = job.ID
+	if job.Stats != nil {
+		job.Stats.JobID = job.ID
+	}
 
 	for i := range job.Logs {
 		job.Logs[i].JobID = job.ID