### Apache Airflow version

main (development)

### What happened

For DataprocInstantiateInlineWorkflowTemplateOperator and DataprocInstantiateWorkflowTemplateOperator, the dataproc link is available only for the jobs that have succeeded. Incase of Failure, the DataprocLink is not available

### What you think should happen instead

Like other dataproc operators, this should be available for workflow operators as well

### How to reproduce

_No response_

### Operating System

MacOS Monterey

### Versions of Apache Airflow Providers

apache-airflow-providers-google==6.5.0

### Deployment

Astronomer

### Deployment details

_No response_

### Anything else

_No response_

### Are you willing to submit PR?

- [X] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

if self.job_template:
            self.job = self.job_template.build()
            if self.job is None:
                raise Exception("The job should be set here.")
            self.dataproc_job_id = self.job["job"]["reference"]["job_id"]
            self.log.info("Submitting %s job %s", self.job_type, self.dataproc_job_id)
            job_object = self.hook.submit_job(
                project_id=self.project_id, job=self.job["job"], region=self.region
            )
            job_id = job_object.reference.job_id
            self.log.info("Job %s submitted successfully.", job_id)
            
            DataprocLink.persist(
                context=context, task_instance=self, url=DATAPROC_JOB_LOG_LINK, resource=job_id
            )
            if self.deferrable:
                self.defer(
                    trigger=DataprocBaseTrigger(
                        job_id=job_id,
                        project_id=self.project_id,
                        region=self.region,
                        delegate_to=self.delegate_to,
                        gcp_conn_id=self.gcp_conn_id,
                        impersonation_chain=self.impersonation_chain,
                        polling_interval_seconds=self.polling_interval_seconds,
                    ),