LineRenderer not working

Hey everyone I am new to unity scripting and I made a gun script but the laser is not visible but the enemy can get shot. My code:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Gun : MonoBehaviour
{
public Transform barrel;
public float range = 0f;
private LineRenderer lineRenderer;
// Start is called before the first frame update
void Start()
{
lineRenderer = GetComponent();
lineRenderer.enabled = false;
lineRenderer.useWorldSpace = true;
}

// Update is called once per frame
void Update()
{
    if (Input.GetButtonDown("Fire1"))
    {
        StartCoroutine("Fire");
        lineRenderer.enabled = true;
    }
    else
    {
        lineRenderer.enabled = false;
    }
}

IEnumerator Fire()
{
    RaycastHit hit;

    Ray ray = new Ray(transform.position, transform.forward);

    Debug.DrawRay(transform.position, transform.forward * range, Color.blue, 50);

    if(Physics.Raycast(ray, out hit, range))
    {
        if(hit.collider.tag == "Enemy")
        {
            Enemy enemy = hit.collider.GetComponent<Enemy>();
            enemy.health -= 1;
        }
    }

    lineRenderer.SetPosition(0, transform.position);
    lineRenderer.SetPosition(1, transform.position);

    yield return null;
}

}

Well, first of all, you have both positions set to the same position (transform.position) and you haven’t defined the point count of line renderer.

lineRenderer.positionCount = 2; //set the position count of LR

float rayLength = 10.0f;

Vector3[] positions = { transform.position, transform.position + ( transform.forward * rayLength ) };

lineRenderer.SetPositions( positions ); // more optimized when just calling SetPositions and passing array once as opposed to calling SetPosition() function multiple times